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

站長(zhǎng)資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

golang有進(jìn)程嗎

golang有進(jìn)程。進(jìn)程就是程序在操作系統(tǒng)中的一次執(zhí)行過(guò)程,是由系統(tǒng)進(jìn)行資源分配和調(diào)度的基本單位;進(jìn)程是一個(gè)動(dòng)態(tài)概念,是程序在執(zhí)行過(guò)程中分配和管理資源的基本單位,每一個(gè)進(jìn)程都有一個(gè)自己的地址空間。go語(yǔ)言支持多進(jìn)程,它線程模型是MPG模型,整體上Go程與內(nèi)核線程是多對(duì)多對(duì)應(yīng)的。

golang有進(jìn)程嗎

本教程操作環(huán)境:windows7系統(tǒng)、GO 1.18版本、Dell G3電腦。

一、關(guān)于進(jìn)程和線程

1. 進(jìn)程(Process)

進(jìn)程就是程序在操作系統(tǒng)中的一次執(zhí)行過(guò)程,是由系統(tǒng)進(jìn)行資源分配和調(diào)度的基本單位,進(jìn)程是一個(gè)動(dòng)態(tài)概念,是程序在執(zhí)行過(guò)程中分配和管理資源的基本單位,每一個(gè)進(jìn)程都有一個(gè)自己的地址空間。一個(gè)進(jìn)程至少有5種基本狀態(tài):初始態(tài)、執(zhí)行態(tài)、等待狀態(tài)、就緒狀態(tài)、終止?fàn)顟B(tài)。

通俗講:進(jìn)程就是一個(gè)正在執(zhí)行的程序。

2. 線程

線程是進(jìn)程的一個(gè)執(zhí)行實(shí)例,是程序執(zhí)行的最小單元,它是比進(jìn)程更小的能獨(dú)立運(yùn)行的基本單位。

通俗講:一個(gè)進(jìn)程可以創(chuàng)建多個(gè)線程,同一個(gè)進(jìn)程中的多個(gè)線程可以并發(fā)執(zhí)行,一個(gè)程序要運(yùn)行的話至少有一個(gè)進(jìn)程。

golang有進(jìn)程嗎

golang有進(jìn)程嗎

二、關(guān)于并發(fā)和并行

1. 并發(fā)

多個(gè)線程同時(shí)競(jìng)爭(zhēng)一個(gè)位置,競(jìng)爭(zhēng)到的才可以執(zhí)行,每一個(gè)時(shí)間段只有一個(gè)線程在執(zhí)行。

golang有進(jìn)程嗎

2. 并行

多個(gè)線程可以同時(shí)執(zhí)行,每一個(gè)時(shí)間段,可以有多個(gè)線程同時(shí)執(zhí)行。

golang有進(jìn)程嗎

3. 通俗講

多線程程序在單核cpu上運(yùn)行就是并發(fā),在多核cpu上運(yùn)行就是并行。如果線程數(shù)大于cpu核數(shù),則多線程程序在多個(gè)cpu上既有并發(fā)也有并行。

三、goroutine協(xié)程以及主線程

1. 主線程

可以理解為線程或進(jìn)程,在一個(gè)golang程序的主線程上可以啟用多個(gè)協(xié)程。golang中多協(xié)程可以實(shí)現(xiàn)并發(fā)或者并行。

2. 協(xié)程

可以理解為用戶(hù)級(jí)別的線程,這是對(duì)內(nèi)核透明的,也就是系統(tǒng)并不知道有協(xié)程的存在,是完全由用戶(hù)自己的程序進(jìn)行調(diào)度的。golang的一大特色就是從語(yǔ)言方面原生支持協(xié)程,在函數(shù)或方法前面加一個(gè)go關(guān)鍵詞就可以創(chuàng)建一個(gè)協(xié)程。可以說(shuō)golang中的協(xié)程就是goroutine。

golang有進(jìn)程嗎

Golang 中的多協(xié)程有點(diǎn)類(lèi)似其他語(yǔ)言中的多線程。

3. 多協(xié)程和多線程

Golang 中每個(gè) goroutine (協(xié)程) 默認(rèn)占用內(nèi)存遠(yuǎn)比 Java 、C 的線程少。 OS 線程(操作系統(tǒng)線程)一般都有固定的棧內(nèi)存(通常為 2MB 左右),一個(gè) goroutine (協(xié)程) 占用內(nèi)存非常小,只有 2KB 左右,多協(xié)程 goroutine 切換調(diào)度開(kāi)銷(xiāo)方面遠(yuǎn)比線程要少。 這也是為什么越來(lái)越多的大公司使用 Golang 的原因之一。

四、go關(guān)鍵詞實(shí)操

1. 順序執(zhí)行

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

2. 加入go

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

3. 加入時(shí)間

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

4. 主線程執(zhí)行快的情況

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

5. sync.WaitGroup解決不等待

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

6. 多協(xié)程并發(fā)并行執(zhí)行

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

五、設(shè)置golang運(yùn)行時(shí)占用的cpu核數(shù)量(不是很重要)

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

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
久久精品国产99精品国产亚洲性| 国产激情无码一区二区APP| 亚洲AV无码一区二区三区乱码4 | 精品蜜臀久久久久99网站| 狠狠色丁香婷婷亚洲综合 | 国产成人A区在线观看| 国产精品污WWW在线观看| 欧美国产成人精品二区芒果视频| 人妻少妇精品久久久久久0000| 少妇人妻偷人精品无码视频| 性少妇VIDEOXXX欧美69| 亚洲无线一二三四区手机| 337P亚洲裸体人体| 成在人线AV无码免费高潮水老板| 国产精品久久久久久无遮挡 | 小SB是不是想被C了| 亚洲啪啪AV无码片| 99久久国产宗和精品1上映| 粉嫩AV一区二区夜夜嗨| 国内精品一区二区三区| 巨大欧美黑人XXXXBBBB| 日本十八禁免费看污网站| 无码中文字幕加勒比一本二本| 亚洲欧美国产精品久久| AV成人无码无在线观看| 国产成人亚洲综合无码AⅤ| 精品无码久久久久久尤物| 欧美成人V片观看| 外国操逼全黄视频| 亚洲人成影院在线无码按摩店| 99精品国产成人一区二区| 国产成人午夜精品影院| 久久久国产精品ⅤA麻豆LL| 人妻少妇88久久中文字幕| 亚欧成人中文字幕一区| 中文字幕一区二区三区乱码| 粗大黑人巨茎大战欧美成人| 精品无码综合一区二区三区| 人妻AⅤ无码一区二区三区| 校花下乡被灌满受孕| 性欧美牲交在线视频| 女人18毛片A级毛片视频| 骚片AV蜜桃精品一区| 亚洲V国产V天堂A无码二区| 97久久欧美极品少妇XXXXⅩ| 国产国拍亚洲精品MV在线观看| 久久精品香蕉绿巨人登场| 日产精品久久久久久久性色| 亚洲妇女无套内射精| 999WWW成人免费视频| 国产女人的高潮国语对白| 男男H黄漫画啪啪无遮挡| 无码熟妇人妻AⅤ在线影片| 中文字日产幕码三区的做法大全| 国产护士在线视频XXXX免费| 蜜臀AⅤ永久无码精品| 无码专区6080YY电影| 99久久精品免费看国产一区二区| 国产麻豆精品精东影业AV网站| 欧美 日韩 国产 成人 在线观看| 性色AV夜夜嗨AV浪潮牛牛| 99久久夜色精品国产网站| 黑人粗大与亚裔乱P视频| 日本老黄AAAAAAAAAAAA| 野花香HD免费高清版6高清版 | 亚洲AV成人片乱码色午夜| CHINESE高潮收缩ORGASM| 精JAVAPARSER乱偷| 色狠狠AV一区二区三区| 中国WINDOWS野外| 国产最大成人亚洲精品| 日本VA欧美VA欧美VA精品| 亚洲午夜无码毛片av| 国产精品久久久久久久久免费蜜桃| 男人J桶进女人J无遮挡| 亚洲第一无码AV播放器下载| 丰满顿熟妇好大BBBBBΒ| 妺妺窝人销魂体色www| 亚洲AV成人一区二区三区观看在| 超薄肉色丝袜一二三四区| 老师抱着我在教室做| 羞羞麻豆国产精品1区2区3区| 北条麻妃一区二区三区AV高清| 久久人人爽人人爽人人片DVD| 无码人妻精品一区二区三区免费| CHRISTMAS农村夫妻HO| 久久久国产精华液| 亚洲AV永久纯肉无码精品动漫 | 久久婷婷五月综合色俺也想去| 午夜无码大尺度福利视频| 成人免费区一区二区三区 | 坐着轮流提双腿能起到什么效果| 狠狠综合久久狠狠88亚洲| 偷拍中国熟妇牲交| 扒开双腿疯狂进出爽爽爽视频| 美女粉嫩饱满的一线天MP4| 亚洲AV福利天堂在线观看| AV成人午夜无码一区二区| SEERX性欧美老妇| 国产成人无码综合亚洲日韩| 人妻少妇看A偷人无码精品视频| 中国JAPANESE成熟少妇| 久久精品高清一区二区三区| 亚洲av无码成人精品区在线观看 | 野外XXXXFREEXXXX日| 激情都市 校园 人妻 武侠| 无码99久热只有精品视频在线观 | 护士人妻HD中文字幕| 五月婷日韩中文字幕| 国产V亚洲V天堂无码久久久 | 一对浑圆的胸乳被揉捏动态图| 娇妻被别人玩弄至高潮| 亚洲AV乱码一区二区三区| 国产精品毛片无码一区二区蜜桃| 少妇VIDES裸体BBWWHD| 成人精品无码一区二区三区| 日本巨大的奶头在线观看| 波多野结衣av电影在线观看| 人妻巨大乳一二三区麻豆| wwwxxx一区二区| 欧洲美熟女乱又伦AV曰曰| AV区无码字幕中文色| 欧美性爱一二三区| YY8090理论三级在线观看| 区二区三区在线 | 欧洲| www.av无码| 日产精品一线二线三线芒| 不收费半夜年轻人看B站软件| 日本人も中国人も汉字を| 成人中文乱幕日产无线码| 日日摸夜夜添无码无码AV| 饭桌上故意张开腿让公H| 三个男人躁我一个爽视频免费| 丰满妇女强高潮18ⅩXXX| 双人床上做剧烈运动可以吗| 国产成人AV免费观看| 无遮挡H肉动漫在线播放| 国产性猛交╳XXX乱大交| 亚洲AV最新天堂网址| 精品久久人人做人人爽综合| 亚洲中文字幕AⅤ天堂| 乱世儿女国语免费观看| √8天堂资源地址中文在线| 欧美精产国品一二三区别| ぱらだいす天堂中文网.WWW| 日韩一区无码视频| 国产精品久久久亚洲| 亚洲AV综合AV一区二区综合| 九九AV高潮AV无码AV喷吹| 影音先锋女人AV鲁色资源网久久| 美女内射毛片在线看免费人动物| 88国产精品视频一区二区三区| 人人妻人人添人人爽日韩欧美| 高清毛茸茸的中国少妇| 五月香丁激情欧美啪啪| 久久AV无码专区亚洲AV桃花岛 | 国产精品VA无码免费| 亚洲HAIRY多毛PICS大全| 久久久久久精品成人免费| 9999国产精品欧美久久久久久| 搡BBBB槡BBBB| 国产综合精品一区二区三区| 一二三四视频社区在线| 欧美乱妇日本无乱码特黄大片| 丰满人妻被黑人中出849| 亚洲AV成人一区二区三区不卡| 久久久久久精品免费免费R | 一本色道久久综合狠狠躁| 欧美致敬很多经典的黑白MV| 国产SUV精品一区二区33| 亚洲精品无码AV人在线观看| 奶头从情趣内衣下露了出来AV | 欧美人与动牲交免费观看| 国产AⅤ无码专区亚洲AV| 亚洲国产成人乱码| 女人自慰喷水全过程免费观看| 公么的大龟征服了我BD| 亚洲精品无码久久久久AV麻豆| 女朋友喊疼男生的心理活动知乎| 公交车舒婷1一20全文| 亚洲欧美日韩中文字幕在线一区| 欧美XXXxX高潮喷水| 国产精品扒开腿做爽爽爽日本无码| 亚洲精品乱码久久久久久V| 欧美性狂猛BBBBBBXXXX| 国产欧美精品一区二区三区| 亚洲综合成人婷婷五月网址| 日韩成人av网站| 久久久WWW成人免费看片| 孕妇特级毛片WW无码内射| 欧美日日日日BBBBB视频| 国产精品亚洲专区无码破解版| 夜里18款禁用B站入口探APP| 福建妹妹幼儿十岁左右| 成人午夜精品无码区| 我的风流岳每2部集第| 可以差差差的视频无掩盖| 丰满少妇女人A毛片视频| 一本久久伊人热热精品中文| 少妇特殊按摩高潮爽翻天|