首頁 >後端開發 >Golang >golang並發程式設計是什麼

golang並發程式設計是什麼

(*-*)浩
(*-*)浩原創
2019-12-13 14:16:181963瀏覽

golang並發程式設計是什麼

簡而言之,所謂並發程式設計是指在一台處理器上「同時」處理多個任務。

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn