2013-04-30 76 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] 「線程」 庫