2013-04-30 94 views

回答

9

基本上,对于所有实际目的,基本上,Eventlet绿色线程将被视为OS线程的轻量级模拟。优点:

  • 在便宜的CPU,内存术语和系统调用来创建(0)
  • 便宜切换;在Python 2.x中尤其如此,其中每个线程都主动尝试抢占浪费CPU的GIL。

缺点:

  • 重要因为许多绿色线程一个OS线程中运行,当一个系统调用(例如,开放式(2))的区块其中一个OS线程,所有的绿色线程也被阻止。
  • no SMP(multicpu/multicore);但随后使用GIL,对于Python中的操作系统线程也是如此。对于greenlet [1],这个限制更严格,因为某些C扩展不可能释放GIL以允许其他绿线继续。

您也可以找到这个答案有用:由Eventlet https://github.com/python-greenlet/greenlet

使用 Is a greenthread equal to a "real" thread

[1] “线程” 库