成人怡红院-成人怡红院视频在线观看-成人影视大全-成人影院203nnxyz-美女毛片在线看-美女免费黄

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

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號
把腿张开自慰给我看| 成人欧美一区二区三区黑人免| A狠狠久久蜜臀婷色中文网| FREEZEFRAME丰满寡妇| 成人精品一区二区三区| 国产成人亚洲精品青草| 国产人成无码视频在线| 久久国产精品77777| 男女做AJ视频免费的网站| 强行破瓜稚嫩粗暴顶弄哭喊| 少妇 黑人 欧美 亚洲| 亚洲AV成人片无码www小说| 亚洲人成无码网站18禁10| 中文字幕亚洲日韩无线码| 人妻少妇波多野结衣黑人| 少妇CHINA中国人妻VIDE| 性亚洲VIDEOFREE高清极| 亚洲性色AV私人影院无码| 99精产国品一二三产区区别在线| 粗大的内捧猛烈进出视频| 国产亚洲精品自在久久| 老熟女HDXX中国老熟女| 日产亚洲一卡2卡3卡4卡网站| 午夜精品一区二区三区在线视 | 日本国产网曝视频在线观看| 无码一区二区三区视频| 亚洲一区日韩高清中文字幕亚洲| 99视频精品全部在线观看| 国产激情精品一区二区三区| 久久久久国产综合AV天堂| 激情内射亚州一区二区三区爱妻| 邻居把我弄的高潮三次面舞| 日小骚B少妇真舒服| 亚洲成A人V在线蜜臀| 97免费公开在线视频| 国产极品熟女沙发内射AV| 久久人人爽人人爽人人片AV高清 | 亚洲AV成人影视在线观看| 中文字幕人妻无码乱精品| 俄罗斯卖CSGO的网站| 精品一区二区三区免费视频| 人妻少妇久久中文字幕一区二区| 亚洲AV无码国产永久播放蜜芽| 中文在线っと好きだった最新版| 丰满熟妇性ⅩXXOOO69| 久久成人成狠狠爱综合网| 日韩大片高清播放器| 亚洲精品国产成人AV| 八戒八戒在线高清观看视频4| 好男人 好资源在线 视频| 欧美最猛黑人XXXⅩ猛男野外 | 西西顶级艺术WWW日本超大胆| 影音先锋女人AV女色资源| 国产成人精品午夜福利| 国产精品美女久久久网站动漫| 巨大欧美黑人XXXXBBBB| 我半夜摸妺妺的奶摸到高潮| 中文字幕天天躁日日躁狠狠躁免费 | 国产免费福利在线视频| 女人不怕粗短就怕蘑菇头什么意| 亚洲AV无码国产精品麻豆天美 | 伊人久久大香线蕉综合影院| 国产精品Ⅴ无码大片在线看| 国模精品一区二区三区| 热RE99久久精品国产99热| 亚洲精品无码精品MV在线观看 | 久久6久久66热这里只是精品| 三个男人躁我一个爽| 在线天堂中文在线资源网| 国产老妇伦国产熟女老妇视频| 欧美成人精品高清在线播放| 亚洲AV无码专区国产乱码波多野| 办公丝袜AV一区二区三区| 久久久久亚洲AV成人片一区| 无码中文字幕AⅤ精品影| 宝宝怎么这么湿~别磨| 里番ACG★同人里番本子大全| 亚洲 熟 图片 小说 乱 妇 | 色婷婷精品久久二区二区蜜臀av| 永久939W79W99W乳液| 韩国乱码片免费看| 美女图片禁欲系高级感| 亚洲AV永久无码精品一福利| 公的下面好大弄得我好爽| 欧美精品双插重口在线播放| 亚洲综合一区国产精品| 国产又大又黑又粗免费视频| 日日麻批免费40分钟无码| 99精品国产一区二区三区2| 久久精品国产免费播| 亚洲AV成人片无码www小说| 公天天吃我奶躁我的在线观看| 欧美日韩精品一区二区三区不卡| 无码成人AAAAA毛片| 插花弄玉小说荔枝很甜| 欧美AⅤ精品一区二区三区| 一边下奶一边吃面膜视频讲解 | 国产超碰AV人人做人人爽| 人妻丰满妇岳av无码区HD| 97人人超碰国产精品最新o| 精品日本久久久久久人妻日本 | 99精品无人区乱码1区2区3区| 久久久久无码国产精品一区| 亚洲国产欧美在线人成大黄瓜| 国产精品久久福利新婚之夜| 少妇侧入内射一区二区| 成人毛片100免费观看| 欧洲码和亚洲码的尺码区别| 中文字幕无码专区人妻制服| 久久97超碰人人澡人人爱| 亚洲国产成人综合在线不卡| 国内精品视频一区二区三区| 小荡货奶真大水真多紧视频| 国产精品久久无码不卡| 铜铜铜铜铜铜铜铜铜好大好深色 | 天堂А√在线地址中文在线| 粗大猛烈进出高潮视频免费看| 人妻少妇伦在线无码| WWW一区二区WWW免费| 欧美乱码卡1卡2卡三卡四卡| 97亚洲狠狠色综合久久| 你下水好多下水道BD| 亚洲AV无码久久寂寞少妇多毛| 国产精品久久久久9999赢消| 天黑黑影院免费观看视频在线播放 | BT天堂网.WWW在线资源| 欧美ZC0O人与善交| AV色综合久久天堂AV色综合在| 欧美疯狂3p群体交乱视频丨zu| 99精品国产兔费观看久久99| 欧洲一卡二卡三卡| 波多野结衣AV一区二区三区中文| 久久精品夜色噜噜亚洲A∨| 亚洲人亚洲精品成人网站| 久久精品亚洲日本波多野结衣| 野兽的夜晚第四季忘不掉的前任 | 全彩漫画口工18禁无遮H| YY111111少妇影院理论片| 日本久久久久久久久久加勒比| 成熟交BGMBGMBGM的价格| 水蜜桃AV无码一区二区| 国产精品亚洲欧美大片在线观看 | 麻豆果冻视频传媒APP下载| 2019日韩中文字幕MV| 翘臀后进呻吟喷水的少妇| 成人免费午夜无码视频| 天堂А√在线中文在线| 国产三级在线观看播放视频| 亚洲国产午夜精品理论片| 久久人妻无码一区二区三区AV| 中文字幕AV伊人AV无码AV| 漂亮人妻洗澡被公强 日日躁| 成人无码H动漫在线播放| 无码精品国产一区二区三区免费| 国色天香网WWW在线观看| 亚洲中文无码线在线观看| 麻花传媒剧国产MV高清播放 | 人妻无码一区二区三区免费 | 巨爆乳寡妇中文在线观看| 99久久精品免费看国产一区二区| 日本适合十八岁以下的护肤 | 国产男男Gay做受ⅩXX高潮| 亚洲精品~无码抽插| 秘密列车在线全集免费观看| 办公室屈辱的人妻加班| 婷婷五月深爱憿情网六月综合| 精产国品一二三产区区别是什么| 中国 韩国 日本 免费看片| 日本丰满熟妇BBXBBXHD| 国产免费无码一区二区视频| 亚洲中文字幕无码第一区| 欧美精品人人做人人爱视频| 国产超碰人人爽人人做| 亚洲精品美女久久7777777| 男女做爰高清免费直播网站| 给丰满丁字裤少妇按摩到高潮| 亚洲丰满少妇多毛大隂户| 日日摸夜夜添夜夜添毛片性色AV| 无码人妻精品一区二区三区99仓 | 日韩精品专区在线影院重磅| 国产日韩综合一区二区性色AV| 亚洲最大的熟女水蜜桃AV网站| 人妻波多野结衣爽到喷水| 国产男男GAY做受ⅩXX小说| 一本一本久久A久久综合精品蜜桃| 人人妻人人澡人人爽精品日本| 国产无遮挡免费真人视频在线观看 | 亚洲AV无码蜜臀久久寂寞少妇| 免费人成在线观看| 妇女被深耕过后的变化| 亚洲色欲综合天堂亚洲 | 别揉我奶头~嗯~啊~免费视频| 性饥渴少妇AV无码毛片| 免费观看的AV毛片的网站| 国产CHINESE男男GAYGAY网站| 亚洲一区二区无码偷拍| 日韩中文无码有码免费视频| 久久99国产精品二区| 大炕上的肉体交换| 欧美性VIDEOS高清精品|