标签: go concurrency
Golang的Go Routine背后的架构是什么?
我相信Go并不只是为每个例程分叉一个新线程。
答案 0 :(得分:3)
过去有Go实现确实为每个goroutine创建了一个新线程。
在Go实现中,Go例程基本上只是一个堆栈(通常很小),带有一些额外的上下文(在1.5中,请参阅runtime / runtime2.go中的type g)。从goroutine更改为另一个意味着更改堆栈指针和指向当前正在运行的goroutine的线程局部变量。
type g