[英]Gevent Pool apply_async
如何防止pool.apply_async
中的pool.apply_async停止程序,我的意思是
import gevent
from gevent.monkey import patch_all
from gevent.pool import Pool
pool = Pool(10)
def print_num(num):
print(num)
numbers = [1,2,3,4,5,6,7,8,9,10]
for number in numbers:
self.pool.apply_async(print_num, args=(number,))
现在,如果我们运行上面的代码,那么程序将关闭并且工人还没有完成所有操作
如果添加join
,程序仍将退出。
我们如何等待所有工人完成他们需要做的工作
pool.apply_async
中的gevent
这对我来说很好。
import gevent
from gevent.monkey import patch_all
from gevent.pool import Pool
pool = Pool(10)
def print_num(num):
print(num)
numbers = [1,2,3,4,5,6,7,8,9,10]
for number in numbers:
pool.apply_async(print_num, args=(number,))
pool.join()
并发不是多线程
当不调用pool.join时,将永远不会调度greenlet。 调用联接时,greenlet不会作为单独的线程运行。 并发与并行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.