1
基本上,我想有一個線程池來執行一段時間的一些任務。我認爲Python中的多處理庫對我來說是完美的。然而,我找不到一種方法,因爲當其中一個進程完成時(並且不需要等待池中的其他線程完成),返回主線程並執行某些任務(遞增變量,檢查時間閾值已經滿足等),以潛在地啓動具有新參數的新過程。例如,這裏的所有參數的函數給出的前期(1..10)爲處理池(4)處理:如何使用Python多處理庫完成進程時請求新任務?
from multiprocessing import Pool
def f(x):
return x*x
if __name__ == '__main__':
pool = Pool(processes=4) # start 4 worker processes
print pool.map(f, range(10)) # prints "[0, 1, 4,..., 81]"
然而,由於我需要執行的一些任務特定的時間段,這不會對我有所幫助,因爲我不一定知道這些任務需要多長時間才能完成。有沒有辦法做到這一點?
在工作人員之間使用共享隊列,並將任務推送到那裏。看到我的示例實現:http://integricho.github.io/2013/03/27/no-man-left-behind/ – andrean