5
我想創建許多過程, 每個過程輪次秒鐘後比以前的工藝, 即,每道工序之間的時間間隔開始爲5秒, 使: 運行過程1 等待5秒鐘 運行過程2 等待5秒鐘 運行過程3 等待5秒鐘 .....如何從Python進程池中取出處理
像:
for i in range(10):
p = multiprocessing.Process(target=func)
p.start()
sleep(5)
#after all child process exit
do_something()
但我想所有的進程退出 之後調用do_something()我不知道該怎麼辦這裏
與蟒蛇池libary同步,我可以有
pool = multiprocessing.Pool(processes=4)
for i in xrange(500):
pool.apply_async(func, i)
pool.close()
pool.join()
do_something()
但在這這樣,4個進程將同時運行, 我不能決定處理之間的時間間隔, 是否有可能創建一個進程池,然後取每個過程,像
pool = multiprocessing.Pool(processes=4)
for i in xrange(500):
process = pool.fetch_one()
process(func, i)
time.sleep(5)
pool.close()
pool.join()
do_something()
是否有這樣的庫或源代碼片段,可以滿足我的需求? 感謝
也許你可以給你的func添加一個參數,它是處理之前要等待的秒數。並將該值計算爲5 * i? – mdscruggs 2013-05-06 01:18:44
你想每5秒鐘調用'func' 500次嗎?爲什麼延遲?個人'func'電話最後一次通話多久?你想限制併發(同時)呼叫的數量嗎?如果在'apply_async()'之後添加'time.sleep()'會發生什麼?你想要發生什麼? – jfs 2013-05-06 02:40:16
個人'func'通話持續25秒。我想每5秒鐘調用'func'多次,也許500次或1000次。 – misteryes 2013-05-06 10:07:34