2015-09-24 101 views
1

Golang的Go Routine的結構是什麼?Golang的Go Routine的結構是什麼?

我相信Go不會爲每個例程分叉一個新線程。

+6

http://programmers.stackexchange.com/questions/222642/are-go-langs-goroutine-pools-just-green-threads,http://stackoverflow.com/questions/18058164/is-golang-goroutine -a-coroutine - 閱讀更有趣,尋找'綠色線索',因爲這個術語通常適用於談話 – user2864740

+0

沒有額外仔細閱讀規範:我認爲這是一個實現「細節」。 – Volker

回答

3

過去已經有Go實現,實際上爲每個goroutine創建了一個新線程。在主要Go實現中,Go例程基本上只是一個具有一些額外上下文(在1.5中,參見運行時/ runtime2.go中的type g)的堆棧(通常很小)。從goroutine更改爲另一個意味着更改堆棧指針和指向當前正在運行的goroutine的線程局部變量。