簡而言之,所謂並發程式設計是指在一台處理器上「同時」處理多個任務。
Golang語言中,並發使用的協程的機制,實現起來也是十分的方便,使用go關鍵字即可。 (建議學習:go)
func main() { ... go fun(){ fmt.Println("Hi, Here is a goroutine.") }() ... }
「整合設計時的核心。 goroutine說到底其實就是協程,它比線程更小,十幾個goroutine可能體現在底層就是五、六個線程,Go語言內部幫你實現了這些goroutine之間的記憶體共享。
執行goroutine只需極少的堆疊記憶體(大概是4~5KB),當然會根據對應的資料伸縮。也因為如此,可同時運行成千上萬個並發任務。 goroutine比thread更易用、更有效率、更輕。 一般情況下,一個普通計算機跑幾十個線程就有點負載過大了,但是同樣的機器卻可以輕鬆地讓成百上千個goroutine進行資源競爭。Goroutine的建立
#只需在函數調⽤語句前加入 go 關鍵字,就可建立並發執⾏單元。開發人員無需了解任何執行細節,調度器會自動將其排程到適當的系統執行緒上執行。
在並發程式設計中,我們通常想將一個過程切分成幾塊,然後讓每個goroutine各自負責一塊工作,當一個程式啟動時,主函數在一個單獨的goroutine中運行,我們叫它main goroutine。新的goroutine會用go語句來創建。 而go語言的同時設計,讓我們很輕鬆就可以達成這個目的以上是golang並發程式設計是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!