在他的谈话- https://blog.golang.org/concurrency-is-not-parallelism,罗勃·派克说,去例程类似于线程,但很多便宜得多.有人可以解释原因吗?
请参阅“ goroutine 如何工作”。
\n它们在以下方面更便宜:
另外,正如《Go\xe2\x80\x99s 迈向低延迟 GC》中提到的,当运行时负责管理 goroutine 时,GC 更容易实现:
\n\n\n自从 Go 1.5 中引入并发 GC 以来,运行时就一直跟踪 goroutine 自上次扫描其堆栈以来是否已执行。标记终止阶段将检查每个 goroutine 以查看它最近是否运行过,并重新扫描少数运行过的 goroutine。
\n在 Go 1.7 中,运行时维护此类 goroutine 的单独简短列表。这样就不需要在用户代码暂停时查看整个 goroutine 列表,并且大大减少了可以触发 kernel\xe2\x80\x99s NUMA 相关内存迁移代码的内存访问次数。
\n
| 归档时间: |
|
| 查看次数: |
806 次 |
| 最近记录: |