1
moudy 3 小时 7 分钟前
windows 3.x 以及带着 gil 的 python thread 本质就是 coroutine:合作式多任务,谁不用 cpu 就把 cpu 让出来给别人。缺点是有一个卡死不让 cpu 的,别人也没办法抢 cpu 过来。好处是可以省去大量的同步处理,减少程序对数据一致性的管理开销,最大化利用(单核) cpu 时间做真正有用的事情。
goroutine 是并行运行的,算是轻量化的线程。 |
2
Dorathea 3 小时 1 分钟前
以下是自己的想法:
[Coroutine 的定义]( https://en.wikipedia.org/wiki/Coroutine)是协作式多线程 其中 co 是 cooperative. [Cooperative 的定义]( https://en.wikipedia.org/wiki/Cooperative_multitasking) golang 是没有 yield 主动放弃线程的, routine 之间除了等待 IO 和 system call 或者其他特殊情况外, 本质是抢占资源, 协程之间协作更多的是用 channel. 好像 golang 也没说过自己是 Coroutine, 文档中说的都是 routine. 为什么会和 Coroutine 联想到一起呢? |
4
Knuth 2 小时 33 分钟前 via iPhone
n*m ,类似于 bthread
|
5
newtype0092 2 小时 13 分钟前
@YanSeven 本末倒置了吧,难道不是因为人家是照着 coroutine 取名 goroutine 才被翻译成 go 协程的么。。。
|