1
最近在一個項目中,我有一個多處理進程崩潰。一個子進程應該進行計算,然後將其發送到Pipe中的父進程。如果孩子墜毀,父母會在從管道讀取時凍結。是否有一種「正確的」方式發送數據,避免兒童死亡時永遠阻止父母?使用多處理處理死進程。管道
這是再現時遇到的問題的例子:
import multiprocessing as mp
def f(pipe):
a = 1/0
pipe.send('hola')
parent, child = mp.Pipe()
proc = mp.Process(target=f, args=(child,))
proc.start()
print "Grabbing result"
print "Result: {0}".format(parent.recv())
proc.join()
嗯,這是一個體面的解決方案,但我希望有一個更好的方法來檢測崩潰,尤其是可能長時間運行的計算過程。 – Belly 2012-03-13 22:28:46