Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python多线程如何设置1个池以队列形式运行任务_Python_Multithreading - Fatal编程技术网

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我知道我只是在测试。