2016-01-29 134 views
1

我想在Python中編寫一個無限期運行的進程,並在後臺運行一些python代碼的進程產生完全「n」數量的進程。我不關心這些後臺進程的輸出/結果,但想知道它們何時終止,以便我總是有「n」個進程運行。任何想法如何我可以去這個或一些參考資料,可以幫助?蟒蛇後臺進程

感謝&問候, Azeem

+0

去檢查'multiprocessing'模塊 – haifzhan

回答

3

我會用一個multiprocessing.Pool這種類型的工作。您可以創建一個具有給定數量工作進程的池,並將Python函數分配給它們運行。

from multiprocessing import Pool 
import time 

def f(x): 
    print(x) 
    time.sleep(1) 
    print("finished", x) 

pool = Pool(processes=4) 

for x in xrange(10): 
    pool.apply_async(f, [x]) 

pool.close() 

pool.join() 

返回如下:

0 
1 
2 
3 
('finished', 0) 
('finished', 1) 
('finished', 2) 
('finished', 3) 
4 
5 
6 
7 
('finished', 5) 
('finished', 7) 
('finished', 4) 
('finished', 6) 
8 
9 
('finished', 8) 
('finished', 9)