首先嚴重推薦《Go 併發編程實戰》,對Go的併發模型講的很透徹。
Goroutine是如何工作的 :
http://www.tuicool.com/articles/Urmamiv
WaitGroup: (相當於C++ 同步中 柵欄的概念)
http://www.tuicool.com/articles/n67Rrui
條件變量 :(和C 線程的 wait 類似)
http://www.tuicool.com/articles/aeIn2q
(sync.Cond 方法Wait :會自動對與該條件變量關聯的那個鎖進行解鎖,並且調用方所在的Goroutine被阻塞。一旦Wait方法受到通知,會試圖再次加鎖,如果加鎖成功,則喚醒那個被阻塞的Goroutine 。否則,Wait 方法等待下一個通知。)
鎖的使用: (golang 讀寫鎖)
http://www.tuicool.com/articles/322qE3v