Python多线程如何设置1个池以队列形式运行任务
我想创建一个池来运行任务,这些任务应该遵循队列和顺序Python多线程如何设置1个池以队列形式运行任务,python,multithreading,Python,Multithreading,我想创建一个池来运行任务,这些任务应该遵循队列和顺序 import multiprocessing import time def func(msg): for i in xrange(3): print msg time.sleep(2) if __name__ == "__main__": pool = multiprocessing.Pool(processes=1) for i in xrange(10): msg = "hell
import multiprocessing
import time
def func(msg):
for i in xrange(3):
print msg
time.sleep(2)
if __name__ == "__main__":
pool = multiprocessing.Pool(processes=1)
for i in xrange(10):
msg = "hello %d" %(i)
pool.apply_async(func, (msg, ))
pool.close()
time.sleep(50);
print "Sub-process(es) done."
它可以打印一些东西。然而,没有一个接一个地出现。它将立即完成实际上它在不同的时间运行。但它会同时显示。实际上它在不同的时间运行。但是它会同时出现。可能重复旁注:
time.sleep(50)代码>是一种愚蠢的方法。只需在pool.close()
之后调用pool.join()
,这样您就可以阻止,直到进程实际完成。@ShadowRanger我知道我只是在测试。旁注可能重复:time.sleep(50)代码>是一种愚蠢的方法。只要在pool.close()
之后调用pool.join()
,您就可以阻止,直到进程实际完成。@ShadowRanger我知道我只是在测试。