2024-04-28 02:39:00 发布
网友
我不完全理解,Twisted、Stackless、Greenlet、Eventlet、Coroutines都使用异步网络IO和userland线程,这些线程非常轻量级,而且切换速度很快。但我不知道他们之间有什么不同。
它们听起来也非常类似于Erlang进程。它们几乎是一样的吗?
任何能帮助我理解这个话题的人都将不胜感激。
上钩了!(修复欢迎!)以下内容:
严重的:
这些进程都没有Erlang进程那么轻巧或受支持。
首先,非阻塞I/O与绿色线程或协程没有任何共同之处,但它会影响它们的调度方式。
现在:
你在比较Stackless时几乎是对的 去格林莱特。缺少的是:
无堆垛本身并不能增加一些东西。取而代之的是,在Stackless 5年后发明的Greenlet移除了某些东西。它的编写非常简单,可以作为扩展模块而不是替换解释器来构建。
这真的很有趣Stackless有更多的特性,在切换时效率大约是原来的10倍,并且提供了执行状态的pickling。
Greenlet仍然胜出,可能只是因为它作为扩展模块的易用性。所以我想用腌制的方法来恢复这个过程。也许这会再次改变局面:-)
上钩了!(修复欢迎!)以下内容:
严重的:
这些进程都没有Erlang进程那么轻巧或受支持。
首先,非阻塞I/O与绿色线程或协程没有任何共同之处,但它会影响它们的调度方式。
现在:
你在比较Stackless时几乎是对的 去格林莱特。缺少的是:
无堆垛本身并不能增加一些东西。取而代之的是,在Stackless 5年后发明的Greenlet移除了某些东西。它的编写非常简单,可以作为扩展模块而不是替换解释器来构建。
这真的很有趣Stackless有更多的特性,在切换时效率大约是原来的10倍,并且提供了执行状态的pickling。
Greenlet仍然胜出,可能只是因为它作为扩展模块的易用性。所以我想用腌制的方法来恢复这个过程。也许这会再次改变局面:-)
相关问题 更多 >
编程相关推荐