5
我的理解是,一旦我調用gevent.monkey.patch_all(),就會修改標準線程模塊以使用greenlets而不是python線程。因此,如果我用python線程,鎖,信號量等方式編寫我的應用程序,然後調用patch_all,我是否獲得了gevent的全部好處,還是因爲使用顯式gevent等價物而失去了某些東西?使用補丁線程vs本地gevent greenlet的缺點?
這個問題背後的動機是我正在編寫一個使用一些線程/ greenlet的模塊,並且我正在決定使用gevent和使用線程之間是否有明確的切換是否有用,或者我是否可以使用線程+ patch_all而不會丟失任何東西。
爲了把它的代碼,這是... ...
def myfunction():
print 'ohai'
Greenlet.spawn(myfunction)
...有什麼不同這個?
import gevent.monkey
gevent.monkey.patch_all()
def mythread(threading.Thread):
def run(self):
print 'ohai'
mythread().start()