久久精品五月,日韩不卡视频在线观看,国产精品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關鍵詞就可以創建一個協程。可以說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號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
在线视频观看日韩| 亚洲婷婷在线| 日韩在线网址| 亚洲永久av| 国产精品多人| 久久中文在线| 国产一区成人| 新版的欧美在线视频| 老司机精品视频网| 另类欧美日韩国产在线| 好吊视频一区二区三区四区| 久久精品理论片| 欧美亚洲三级| 色8久久久久| 久久中文字幕av| 偷拍精品精品一区二区三区| 成人片免费看| 亚洲网站视频| 蜜桃国内精品久久久久软件9| 久久精品动漫| 成人久久一区| 久久中文视频| 欧美精品九九| 欧美精品国产白浆久久久久| 国产欧美一级| 欧美三区四区| 一二三区精品| 蜜臀av国产精品久久久久| 蜜臀av一区二区在线免费观看| 免费人成在线不卡| 国产精品久久免费视频| 国产欧美激情| 国产拍在线视频| 国产精品美女| 久久精品伊人| 欧美日韩精品免费观看视频完整| 欧洲在线一区| 麻豆久久精品| 国产成人精品亚洲日本在线观看| 蜜桃久久久久久| 最新亚洲国产| 国产中文在线播放| 91精品国产经典在线观看| 激情六月综合| 日韩久久精品| 69精品国产久热在线观看| 波多野结衣久久精品| 奇米色欧美一区二区三区| 国产精品久久久久久久久久10秀| 亚洲综合电影| 日韩精品欧美大片| 欧美精品一卡| 日本精品国产| 丝袜亚洲精品中文字幕一区| 免费一级欧美片在线观看网站 | 老鸭窝一区二区久久精品| 91精品亚洲| 国产成人精品亚洲线观看| 欧美精品一卡| 免费欧美一区| 亚洲a一区二区三区| 国产精品探花在线观看| 国产精品一区二区三区www| 好吊日精品视频| 99免费精品| 亚洲成人va| 欧美aa在线观看| 欧美精品高清| 中国字幕a在线看韩国电影| 精品91福利视频| 91一区二区三区四区| 成人在线视频免费| 18国产精品| 国产乱人伦丫前精品视频 | 亚洲欧美日韩视频二区| 日韩av影院| 三上亚洲一区二区| 精品三区视频| 欧美freesex黑人又粗又大| 精品一区二区三区中文字幕在线| 国产精品videosex极品| 97人人精品| 国产一区二区高清| 日本精品国产| 国产日产高清欧美一区二区三区 | 99热精品在线| 久久视频国产| 蜜臀久久99精品久久久画质超高清 | 亚洲欧美日韩国产一区二区| 香蕉久久久久久久av网站| 日韩欧美2区| 日韩福利视频导航| 久久99久久人婷婷精品综合| 成人日韩精品| 免费视频一区三区| 激情欧美一区二区三区| 亚洲在线免费| 欧美片网站免费| 久久一区国产| 99精品在线观看| 石原莉奈在线亚洲三区| 国产欧美日韩精品一区二区三区| 成人午夜网址| 日本精品久久| 久久久影院免费| 免费观看不卡av| 欧美日韩一区二区三区四区在线观看 | 青青青免费在线视频| 婷婷亚洲五月| 久久亚洲资源中文字| 视频一区中文字幕| 国产综合色区在线观看| 日韩av成人高清| 亚洲精品一区二区妖精| 国产精品久一| 精品亚洲美女网站| 国产日韩免费| 日本亚洲不卡| 美女日韩在线中文字幕| 免费日韩一区二区三区| 在线日韩一区| 精品视频自拍| 国产欧美日韩一级| 蜜臀av一区二区三区| 亚洲黄色在线| 日韩欧美国产精品综合嫩v| 国产欧美一区二区色老头| 国产一区成人| 亚洲视频www| 亚洲综合不卡| 久久国产高清| 亚洲一区免费| 亚洲三级av| 日韩av不卡在线观看| 色综合视频一区二区三区日韩| 丰满少妇一区| www.51av欧美视频| 欧美日韩在线观看首页| 日韩免费久久| 今天的高清视频免费播放成人| 欧美日韩xxxx| 久久伊人久久| 精品国产亚洲一区二区三区| 四虎国产精品免费观看| 国产精品久久久久av电视剧| 国产精品视频一区二区三区四蜜臂| 欧美久久精品| 蜜臀国产一区| 欧美资源在线| 亚洲视频国产| 亚洲精品大全| 久久精品国产成人一区二区三区| 日韩国产一区| 亚洲麻豆一区| 国产精品13p| 日韩在线麻豆| 国语精品一区| 亚洲国内精品| 国产色噜噜噜91在线精品| 日韩欧美网址| 亚洲v天堂v手机在线| 国产精品第十页| 久久久久久黄| 日韩av网站在线免费观看| 国产情侣久久| 91久久黄色| 高清av一区| 亚洲麻豆一区| 激情婷婷综合| 精品伊人久久| 91免费精品国偷自产在线在线| 91精品一区国产高清在线gif| 欧美精品三级在线| 美女国产精品| 精品一区免费| 亚洲天堂资源| 久久精品国产网站| 天堂精品久久久久| 精品视频一区二区三区四区五区 | 综合亚洲色图| 欧美日韩国产观看视频| 69精品国产久热在线观看| 性一交一乱一区二区洋洋av| 久久精品国产网站| 久久亚洲图片| 999久久久亚洲| 久久精品国产网站| 国产精品一国产精品| 久久亚洲黄色| 三级欧美在线一区| 久久精品国产大片免费观看| 神马午夜在线视频| 精品国产免费人成网站| 美女福利一区二区三区| 精品国产a一区二区三区v免费| 日韩av成人高清| 日韩av网站在线观看| 日韩不卡一二三区| 欧美欧美黄在线二区| 日韩一区二区三区精品|