2
我知道使用subprocess
模塊來隔離可能存在段錯誤的函數。這工作:Python中的進程隔離
import subprocess
# Blocking for simplicity
res = subprocess.check_output(["python", "c_library_wrapper.py", arg0, arg1, ...])
我試圖找出就是爲什麼multiprocessing
不具有同樣的效果。這似乎沒有工作:
import multiprocessing
from c_library_wrapper import f
# Assume that f puts the return value into a shared queue
p = multiprocessing.Process(target=f, args=(arg0, arg1, ...))
p.start()
p.join()
這是不是也創造了一個獨立的過程?我在這裏錯過了一個核心概念嗎?
背景:我正在隔離一個大的第三方C庫來防止段錯誤。我知道處理段錯誤的最好方法就是解決它們,但是這個庫真的是大。
謝謝!在簡化我的共享隊列邏輯之後,多處理方法按預期工作。 – PattimusPrime