我在探索Python多處理模塊,不明白爲什麼下面的代碼根本不打印任何東西。如果沒有while循環,程序會按預期打印Worker_1。Python多處理:在工作函數中沒有while循環輸出
import multiprocessing, time
def worker1():
print 'Worker_1'
while 1:
print 'Worker_1'
time.sleep(3)
return
if __name__ == '__main__':
jobs = []
p = multiprocessing.Process(target=worker1)
jobs.append(p)
p.start()
我不是多處理模塊的主人,現在我不能測試它,但是嘗試在你的`p.start()`之後添加`p.join()`。如果主程序在子進程啓動後退出,子進程是否繼續?我不這麼認爲,但我不知道。請注意,這意味着您需要做一些詭計,以便在您需要時停止該工作人員。或者,也許可以查看叉子模塊。 – 2010-12-04 21:38:21