Я использую gevent, и я обезьяна все исправляю.
Похоже, что исправление обезьяны заставляет поток работать серийно.
Мой код:
import threading
from gevent import monkey; monkey.patch_all()
class ExampleThread(threading.Thread):
def run(self):
do_stuff() # takes a few minutes to finish
print 'finished working'
if __name__ == '__main__':
worker = ExampleThread()
worker.start()
print 'this should be printed before the worker finished'
Итак, поток работает не так, как ожидалось.
Но если я удалю monkey.patch_all()
, он отлично работает.
Проблема в том, что мне нужно monkey.patch_all()
для использования gevent (теперь показано в приведенном выше коде)
Мое решение:
Я изменил
monkey.patch_all()
to
monkey.patch_all(thread=False)
поэтому я не исправляю нить.