package main
import (
"fmt"
"runtime"
"sync"
)
const (
Step = Step
LoopCount = 2
)
/*
在go中,每個goroutine會在一個cpu的邏輯core上執(zhí)行操作早龟,如果CPU是單核的至会,并且是多個goroutine,可能會存在
一個gouroutine的掛起,go會新建一個thread去goroutine執(zhí)行隊列中拿到下一個任務(wù)仔拟,然后創(chuàng)建thread就行執(zhí)行诵姜。
等之前被掛起的goroutine的thread的任務(wù)再次加載到執(zhí)行隊列中進(jìn)行執(zhí)行。之前被掛起的goroutine的thread則會保留
等待下次被重用。goroutine的并發(fā)比并行要好很多工坊。
Parallelism is about doing a lot of things at once.
Concurrency is about managing a lot of things at once.
*/
func main() {
var wg sync.WaitGroup
runtime.GOMAXPROCS(2)
//注釋掉 tumetime.GOMAXPROCS(2),如果是多核CPU(>=2)献汗,每個goroutine會在每個核上執(zhí)行操作,運行結(jié)果顯示不會有交叉的地方
wg.Add(2)
go func(wg *sync.WaitGroup) {
defer wg.Done()
for i := 0; i < LoopCount; i++ {
for ch := 'a'; ch < 'a'+Step; ch++ {
fmt.Printf("%c ", ch)
}
fmt.Println("\n")
}
}(&wg)
go func(wg *sync.WaitGroup) {
defer wg.Done()
for i := 0; i < LoopCount; i++ {
for ch := 'A'; ch < 'A'+Step; ch++ {
fmt.Printf("%c ", ch)
}
fmt.Println("\n")
}
}(&wg)
wg.Wait()
}
Go Concurreny
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來里覆,“玉大人丧荐,你說我怎么就攤上這事⌒希” “怎么了虹统?”我有些...
- 文/不壞的土叔 我叫張陵,是天一觀的道長隧甚。 經(jīng)常有香客問我车荔,道長,這世上最難降的妖魔是什么戚扳? 我笑而不...
- 正文 為了忘掉前任忧便,我火速辦了婚禮,結(jié)果婚禮上帽借,老公的妹妹穿的比我還像新娘茬腿。我一直安慰自己,他們只是感情好宜雀,可當(dāng)我...
- 文/花漫 我一把揭開白布切平。 她就那樣靜靜地躺著,像睡著了一般辐董。 火紅的嫁衣襯著肌膚如雪悴品。 梳的紋絲不亂的頭發(fā)上,一...
- 文/蒼蘭香墨 我猛地睜開眼退子,長吁一口氣:“原來是場噩夢啊……” “哼岖妄!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起寂祥,我...
- 正文 年R本政府宣布碗暗,位于F島的核電站颈将,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏言疗。R本人自食惡果不足惜晴圾,卻給世界環(huán)境...
- 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望噪奄。 院中可真熱鬧死姚,春花似錦、人聲如沸勤篮。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽碰缔。三九已至账劲,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間金抡,已是汗流浹背瀑焦。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 中國有一句古話說“不積跬步嚣镜,無以至千里爬迟;不積小流,無以成江海菊匿「杜唬”我相信有很多很多的人一定想要去投資去理財,但是總是...
- 我們每天都會面臨無數(shù)的選擇姆钉。因此每天都會有困惑和煩惱。在不知道選什么好的時候抄瓦,就選擇艱辛的那條路吧潮瓶。因為這樣的路不...