他那个解释就是线程啊。。
线程实现生产者消费者是这么干的:
弄一个信号量叫做 notEmpty,生产者生产了半个蛋糕,把 notEmpty 设置为 true, 这时候内核发现有一个消费者在监视这个 notEmpty,就会唤醒消费者来吃蛋糕。在多核系统上,生产者和消费者会同时运行。
真正的协程工具库实现你们以为是直接 goto 到消费者协程吗? No! 其实真正的协程实现,比如 c#, js, python 内部都要运行一个事件循环充当内核的角色。为了解耦合,生产者协程一般不会直接跳消费者协程,而是同样弄了一个 notEmpty 信号量,等生产者协程碰到 IO 事件陷入事件循环的时候才会真正跳到消费者协程去。
【 在 Donaldcuc (Donald) 的大作中提到: 】
: 我去,你这个解释太牛逼了。。。 比那些什么用户态的线程啊什么的明白多了。 真是从实际出发。。。 我要记下了。下次给我小组成员讲的时候就这么说。
--
FROM 117.24.22.*