久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長資訊網
最全最豐富的資訊網站

golang有進程嗎

golang有進程。進程就是程序在操作系統中的一次執行過程,是由系統進行資源分配和調度的基本單位;進程是一個動態概念,是程序在執行過程中分配和管理資源的基本單位,每一個進程都有一個自己的地址空間。go語言支持多進程,它線程模型是MPG模型,整體上Go程與內核線程是多對多對應的。

golang有進程嗎

本教程操作環境:windows7系統、GO 1.18版本、Dell G3電腦。

一、關于進程和線程

1. 進程(Process)

進程就是程序在操作系統中的一次執行過程,是由系統進行資源分配和調度的基本單位,進程是一個動態概念,是程序在執行過程中分配和管理資源的基本單位,每一個進程都有一個自己的地址空間。一個進程至少有5種基本狀態:初始態、執行態、等待狀態、就緒狀態、終止狀態。

通俗講:進程就是一個正在執行的程序。

2. 線程

線程是進程的一個執行實例,是程序執行的最小單元,它是比進程更小的能獨立運行的基本單位。

通俗講:一個進程可以創建多個線程,同一個進程中的多個線程可以并發執行,一個程序要運行的話至少有一個進程。

golang有進程嗎

golang有進程嗎

二、關于并發和并行

1. 并發

多個線程同時競爭一個位置,競爭到的才可以執行,每一個時間段只有一個線程在執行。

golang有進程嗎

2. 并行

多個線程可以同時執行,每一個時間段,可以有多個線程同時執行。

golang有進程嗎

3. 通俗講

多線程程序在單核cpu上運行就是并發,在多核cpu上運行就是并行。如果線程數大于cpu核數,則多線程程序在多個cpu上既有并發也有并行。

三、goroutine協程以及主線程

1. 主線程

可以理解為線程或進程,在一個golang程序的主線程上可以啟用多個協程。golang中多協程可以實現并發或者并行。

2. 協程

可以理解為用戶級別的線程,這是對內核透明的,也就是系統并不知道有協程的存在,是完全由用戶自己的程序進行調度的。golang的一大特色就是從語言方面原生支持協程,在函數或方法前面加一個go關鍵詞就可以創建一個協程??梢哉fgolang中的協程就是goroutine。

golang有進程嗎

Golang 中的多協程有點類似其他語言中的多線程。

3. 多協程和多線程

Golang 中每個 goroutine (協程) 默認占用內存遠比 Java 、C 的線程少。 OS 線程(操作系統線程)一般都有固定的棧內存(通常為 2MB 左右),一個 goroutine (協程) 占用內存非常小,只有 2KB 左右,多協程 goroutine 切換調度開銷方面遠比線程要少。 這也是為什么越來越多的大公司使用 Golang 的原因之一。

四、go關鍵詞實操

1. 順序執行

package main  import "fmt"  func test() { 	for i := 0; i < 5; i++ { 		fmt.Println("test執行", i) 	} }  func main() {     // 正常順序執行 	test() 	for i := 0; i < 5; i++ { 		fmt.Println("main執行", i) 	} 	/* 		test執行 0 		test執行 1 		test執行 2 		test執行 3 		test執行 4 		main執行 0 		main執行 1 		main執行 2 		main執行 3 		main執行 4 	*/ }
登錄后復制

2. 加入go

package main  import "fmt"  func test() { 	for i := 0; i < 5; i++ { 		fmt.Println("test執行", i) 	} }  func main() {     // 加入goroutine后 	go test() 	for i := 0; i < 5; i++ { 		fmt.Println("main執行", i) 	} 	/* 		main執行 0 		main執行 1 		main執行 2 		main執行 3 		main執行 4 		主線程執行完畢后,并沒有等待協程的執行 	*/ }
登錄后復制

3. 加入時間

package main  import (     "fmt"     "time" )  // 加入時間 func test1() { 	for i := 0; i < 5; i++ { 		fmt.Println("test執行", i) 		time.Sleep(time.Millisecond * 100) 	} }  func main() {     // 加入sleep之后再執行 	go test1() 	for i := 0; i < 5; i++ { 		fmt.Println("main執行", i) 		time.Sleep(time.Millisecond * 100) 	} 	/* 		main執行 0 		test執行 0 		test執行 1 		main執行 1 		main執行 2 		test執行 2 		main執行 3 		test執行 3 		test執行 4 		main執行 4 		加入相同的睡眠時間后,執行的順序不一定,但少量數據來看均會執行完畢 	*/ }
登錄后復制

4. 主線程執行快的情況

package main  import (     "fmt"     "time" )  func test1() { 	for i := 0; i < 5; i++ { 		fmt.Println("test執行", i) 		time.Sleep(time.Millisecond * 100) 	} }  func main() {     // 如果主線程執行的快會出現什么情況? 	go test1() 	for i := 0; i < 5; i++ { 		fmt.Println("main執行", i) 		time.Sleep(time.Millisecond * 20) 	} 	/* 		main執行 0 		test執行 0 		main執行 1 		main執行 2 		main執行 3 		main執行 4 		test執行 1 		那么他將不會等待協程執行,就會退出執行。 	*/ }
登錄后復制

5. sync.WaitGroup解決不等待

package main  import (     "fmt"     "time"     "sync" )  var wg sync.WiatGroup  func test2() { 	for i := 0; i < 5; i++ { 		fmt.Println("test執行", i) 		time.Sleep(time.Millisecond * 100) 	} 	wg.Done() }  func main() {     // sync.WaitGroup 完美解決,以后在項目中也會經常使用 	wg.Add(1) 	go test2() 	for i := 0; i < 5; i++ { 		fmt.Println("main執行", i) 		time.Sleep(time.Millisecond * 20) 	} 	wg.Wait() 	/* 		main執行 0 		test執行 0 		main執行 1 		main執行 2 		main執行 3 		main執行 4 		test執行 1 		test執行 2 		test執行 3 		test執行 4 		這樣就可以解決主線程執行完畢后,不等待等待協程執行完畢就退出的問題。 	*/ }
登錄后復制

6. 多協程并發并行執行

package main  import (     "fmt"     "time"     "sync" )  func hello(num int) { 	defer wg.Done() 	for i := 0; i < 5; i++ { 		fmt.Printf("第%v個協程執行--%vn", num, i) 	}  }  func main() {     // 多協程并發執行 	for i := 0; i < 3; i++ { 		wg.Add(1) 		go hello(i) 	} 	wg.Wait() 	/* 		第2個協程執行--0 		第2個協程執行--1 		第2個協程執行--2 		第2個協程執行--3 		第2個協程執行--4 		第0個協程執行--0 		第0個協程執行--1 		第0個協程執行--2 		第0個協程執行--3 		第0個協程執行--4 		第1個協程執行--0 		第1個協程執行--1 		第1個協程執行--2 		第1個協程執行--3 		第1個協程執行--4 	*/ }
登錄后復制

五、設置golang運行時占用的cpu核數量(不是很重要)

package main  import (     "fmt"     "runtime" )  func main() {     // 設置程序占用幾個cpu進行執行,默認是全部 	// 獲取計算機cpu個數 	cpuNum := runtime.NumCPU() 	fmt.Println(cpuNum) // 6 我本機電腦是6核cpu  	// 設置占用cpu個數 	runtime.GOMAXPROCS(2) 	fmt.Println("ok") }
登錄后復制

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
日韩专区一卡二卡| 国产一区调教| 亚洲高清影视| 激情综合在线| 激情五月综合网| 亚洲一区二区成人| 蜜臀91精品一区二区三区| 久热精品在线| 亚洲小说春色综合另类电影| 在线免费观看亚洲| 亚州av日韩av| 久久精品99国产精品| 婷婷精品久久久久久久久久不卡| 日韩高清电影免费| 国产精品国码视频| 成人在线免费观看网站| 丝袜诱惑一区二区| 免费视频国产一区| 亚洲精品无吗| 国产欧美日韩一区二区三区四区| 久久伊人国产| 亚洲精品.com| 中文国产一区| 日本午夜精品一区二区三区电影| 国产色噜噜噜91在线精品| 精品视频在线你懂得| 成人精品亚洲| 午夜国产一区二区| 亚洲欧洲日韩精品在线| 国产精久久久| 99久久亚洲精品蜜臀| 婷婷综合电影| 国产成人精品亚洲线观看| 好吊视频一区二区三区四区| 日韩国产一区二| 国产aa精品| 久久最新视频| 久久精品天堂| 亚洲综合精品四区| 麻豆一区二区99久久久久| 亚洲91久久| 69堂精品视频在线播放| 成人一区而且| 午夜在线视频一区二区区别| 国产精品中文字幕亚洲欧美| 日韩欧美精品一区| 亚洲在线久久| 欧美国产亚洲精品| 一区二区三区视频免费观看| 亚洲精品在线二区| 丝袜诱惑一区二区| 亚洲婷婷丁香| 久久亚洲精品中文字幕| 亚洲深夜福利| 精品福利久久久| 久热re这里精品视频在线6| 久久精品99国产精品| 国产中文欧美日韩在线| 免费视频最近日韩| 精品美女视频| 久热精品在线| 国产一区二区三区四区二区 | 韩日一区二区三区| 国产精品亲子伦av一区二区三区| 少妇精品导航| 国产精品网站在线看| 91高清一区| 国产一区调教| 青草综合视频| 亚洲美洲欧洲综合国产一区| 国产一区二区精品久| 欧美日韩精品一本二本三本| 麻豆视频久久| 一区二区国产在线观看| 播放一区二区| 国产情侣一区在线| 日韩一级网站| 久久不见久久见中文字幕免费| 婷婷激情图片久久| 精品三级在线| 日韩av一级片| 美女精品一区| 欧美日韩一二三四| 国产一区二区亚洲| 欧美一区二区三区久久| 久久福利一区| 正在播放日韩精品| 欧美成人一二区| 日本不卡在线视频| 免费人成在线不卡| 欧美特黄一级| 亚洲无线一线二线三线区别av| 国产成人精品一区二区三区在线| 国产麻豆一区| 日韩av一区二区在线影视| 日韩在线卡一卡二| 欧美日韩视频| 久久婷婷激情| 亚洲国产福利| 精品少妇一区| 精品一区二区三区免费看| 日韩黄色在线观看| 亚洲精品一二| 一区二区三区四区日韩| 亚洲免费在线| 国产韩日影视精品| 日本aⅴ亚洲精品中文乱码 | 免费在线成人网| 国产免费成人| 在线午夜精品| 免播放器亚洲| 欧美日韩国产免费观看| 午夜国产精品视频| 免费视频亚洲| 久久黄色影院| 欧美日韩精品在线一区| 精品中文字幕一区二区三区av| 欧美成人久久| 国产高清一区| 在线成人直播| 一本色道久久精品| 久久亚洲欧洲| 亚洲精品大片| 日本成人在线一区| 国产欧美自拍| 麻豆国产91在线播放| 精品在线网站观看| 国产aⅴ精品一区二区三区久久| 乱一区二区av| 福利在线一区| 日本久久成人网| 国产精品91一区二区三区| 久久国产精品99国产| 日韩欧美高清一区二区三区| 日本麻豆一区二区三区视频| 国产精品亚洲欧美日韩一区在线| 99久久久久久中文字幕一区| 久色成人在线| 亚洲欧美日本日韩| 蜜芽一区二区三区| 日韩一二三区在线观看| 久久精品72免费观看| 精品美女视频 | 国产日韩在线观看视频| 国产激情一区| 日韩电影免费网站| 欧美日韩国产高清| 少妇精品在线| 麻豆中文一区二区| 国产高清不卡| 尹人成人综合网| 天堂俺去俺来也www久久婷婷| 久久国产精品色av免费看| 成人一区不卡| 西西人体一区二区| 91欧美日韩在线| 麻豆视频一区| 在线精品视频在线观看高清| 中日韩男男gay无套| 91欧美精品| 特黄毛片在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎 | 国产精品99在线观看| 欧美在线影院| 韩日一区二区三区| 亚洲三级观看| 国产精品天天看天天狠| 成人午夜在线| 欧美亚洲激情| 亚洲精品动态| 岛国精品一区| 99国产精品私拍| 欧美精品影院| 亚洲成人不卡| 蜜桃久久精品一区二区| 国产精品久久久久久久久久齐齐 | 成人小电影网站| 亚洲午夜免费| 国产精品国产三级国产在线观看| 国产精品毛片一区二区三区| 国产精品超碰| 色老板在线视频一区二区| 亚洲精品在线国产| 91精品国产自产在线观看永久∴ | 1024精品一区二区三区| 国产欧美日韩一区二区三区四区| 亚洲特色特黄| 久久天堂影院| 丝袜亚洲精品中文字幕一区| 国产一区二区三区精品在线观看 | 老牛国产精品一区的观看方式| 精品国产91| 视频在线观看91| 色婷婷久久久| 久久裸体视频| 国产亚洲一区| 一级欧洲+日本+国产| 麻豆久久久久久| 日韩精品一二三四| 久久毛片亚洲|