0
一個全新的過程我想調用子流程蟒蛇功能,而無需創建當前進程的副本。如何產卵在python
我有一個方法A.run()
它應該多次呼叫B.run()
。 A.run()
消耗大量的內存,所以我不希望使用ProcessPoolExecutor
,因爲它複製了整個內存AFAIK。 我也不想用subprocess.Popen
,因爲它有幾個缺點對我說:
- 只傳遞一個字符串作爲參數
- 不能採取例外的優勢
- 我必須知道的
B.py
位置準確,而不是依託PYTHONPATH
我也不想生成線程,因爲B.run()
崩潰容易,我不希望它影響父進程。
有沒有一種方式我忽略了它的優點是產生單獨的進程,沒有額外的內存,但有調用python方法的好處?
編輯1: 解答一些問題:
- 如果我理解正確的這個,我不需要第一蟒蛇進程的背景下。
- 因爲我稱之爲具有靜態變量一個C++庫,他們需要被破壞,我不能再利用過程。
您是否想讓第一個python進程的上下文在新的python進程中可用? –
尋找你說的唯一選擇是在分離的線程上運行B,並在手動結束時進行處理 – Netwave
你可以在'A.run'的clostly位之前創建'ProcessPoolExecutor'嗎?也許創建之前'A.run'甚至開始,並在將它作爲一個參數? – Blckknght