gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费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關鍵詞就可以創建一個協程。可以說golang中的協程就是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號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
国产情侣av自拍| 啊啊啊一区二区| 黄色一级在线视频| 免费在线观看日韩视频| 日本888xxxx| wwwwwxxxx日本| 日韩欧美不卡在线| 亚洲色欲综合一区二区三区| 无限资源日本好片| 屁屁影院ccyy国产第一页| 久久久久久久久久网| 欧美一级视频在线| 国产亚洲精品网站| 国产又黄又猛的视频| 中文字幕国产传媒| 国产精品沙发午睡系列| 亚洲天堂网2018| jizz大全欧美jizzcom| 日韩精品在线中文字幕| 69精品丰满人妻无码视频a片| 北条麻妃在线观看| www.av蜜桃| a在线视频观看| 欧美一级黄色影院| 成人久久久久久久久| 亚洲五码在线观看视频| 中文字幕黄色大片| 成年人三级黄色片| 国产免费一区二区三区四在线播放| 欧美色图色综合| 国产99久久九九精品无码| 欧美污视频网站| 日本成人性视频| 久在线观看视频| 老司机av福利| 国产美女在线一区| 黄瓜视频免费观看在线观看www| 国产中文字幕二区| 艳母动漫在线免费观看| 韩国一区二区在线播放| japanese在线视频| 欧美亚洲日本一区二区三区 | 国产高潮免费视频| 91黄色在线看| 亚洲欧美日韩三级| 久久av综合网| 成人午夜激情av| 蜜臀av.com| 三上悠亚av一区二区三区| 三级av免费看| 久久久久久久少妇| 97干在线视频| 精品成在人线av无码免费看| 欧美亚洲国产成人| 韩国无码av片在线观看网站| 国产成人亚洲精品无码h在线| 亚洲高清免费在线观看| 日韩视频在线视频| 国产大片一区二区三区| 午夜av中文字幕| 在线观看免费的av| 三级性生活视频| 特黄视频免费观看| 和岳每晚弄的高潮嗷嗷叫视频 | 白嫩少妇丰满一区二区| 蜜桃网站在线观看| 国产av不卡一区二区| 97中文字幕在线| 欧美精品成人网| 哪个网站能看毛片| www在线观看免费| 国产又粗又长又爽视频| 蜜桃免费在线视频| 欧美一区二区中文字幕| 亚洲天堂第一区| 久无码久无码av无码| 蜜臀视频一区二区三区| 91高清国产视频| 日韩欧美色视频| av动漫在线看| 国产亚洲黄色片| 亚洲网中文字幕| 欧美亚洲色图视频| 香蕉视频免费版| 成年人黄色在线观看| 成人在线免费在线观看| 男人添女荫道口喷水视频| 精品久久久久久久无码| 日本道在线视频| 中文字幕第22页| 黑人糟蹋人妻hd中文字幕 | 50路60路老熟妇啪啪| 99久久久精品视频| 成年人网站国产| 久久久久久久久久网| 少妇一晚三次一区二区三区| 欧美日韩中文字幕在线播放| 日韩视频 中文字幕| 日韩中文字幕在线免费| 日本中文字幕亚洲| 116极品美女午夜一级| 国产精品视频网站在线观看| 污污视频在线免费| 免费看av软件| 黄色www网站| 999久久久精品视频| 久久精品无码中文字幕| 日韩精品免费播放| 路边理发店露脸熟妇泻火| 精品无码国模私拍视频| 亚洲色成人一区二区三区小说| 国产一区二区视频免费在线观看| 五月婷婷六月合| 91av资源网| 久久国产精品视频在线观看| 中文字幕一区二区三区四| 1024av视频| 逼特逼视频在线| 99久热在线精品视频| 欧美性受xxxx黒人xyx性爽| 精品久久一二三| 国产精品美女在线播放| av在线无限看| www.涩涩涩| 毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 91日韩视频在线观看| 成年人视频在线免费| 国产精品久久久影院| avove在线观看| 美女黄色片网站| 性一交一乱一伧国产女士spa| 成年在线观看视频| 久久久久国产精品熟女影院| 男人和女人啪啪网站| chinese少妇国语对白| 无码人妻丰满熟妇区毛片18| 日韩毛片在线免费看| 日韩av一二三四区| 亚洲欧美偷拍另类| 免费毛片网站在线观看| 国内自拍视频一区| 久久精品一二三四| 18视频在线观看娇喘| 日韩欧美黄色大片| 在线观看视频在线观看| 久久香蕉视频网站| 天天摸天天舔天天操| 成年人午夜视频在线观看| av片中文字幕| 久久av高潮av| 日韩中文字幕三区| 亚洲高清免费在线观看| 成年人深夜视频| 日本888xxxx| 五十路熟女丰满大屁股| 粉色视频免费看| 日韩手机在线观看视频| 欧美老熟妇喷水| 欧美日韩亚洲第一| 男女曰b免费视频| 国产色视频在线播放| 日韩在线第三页| 人妻久久久一区二区三区| 亚洲色欲久久久综合网东京热| 噼里啪啦国语在线观看免费版高清版| 一本之道在线视频| 日本三日本三级少妇三级66| 国产裸体免费无遮挡| 色婷婷一区二区三区av免费看| 天天操狠狠操夜夜操| 五月天中文字幕在线| 热久久久久久久久| 日韩伦理在线免费观看| 波多野结衣综合网| 日韩精品一区二区三区不卡| 最新免费av网址| 日本www在线视频| 亚洲免费看av| 欧美日韩在线视频一区二区三区| 成人黄色一区二区| 人妻少妇精品久久| 亚洲一级片网站| 最近免费观看高清韩国日本大全| 欧美久久在线观看| 免费不卡av网站| 日韩精品一区在线视频| 性生交免费视频| 欧美综合在线播放| www成人免费| 五月天婷婷亚洲| 亚洲色图久久久| 国产区二区三区| 日本www.色| 欧美一级免费在线| 午夜影院免费观看视频| www.五月天色| 伊人再见免费在线观看高清版| 日韩视频在线观看一区二区三区| 国产精品第12页| 精品亚洲一区二区三区四区|