[英]How do you get multiprocessing Pool to not spin up new processes but also not terminate currently running processes?
[英]How to get currently running processes names from multiprocessing module in python
我知道在多線程中,有一個枚舉方法可以用來獲取所有當前正在運行的線程的名稱。 但是對於多處理,非池類進程調用中的等價物是什么:
p1 = multiprocessing.Process(name='P1',
target=self.get_data,
args=(url,))
例如,如果我創建上面的流程,以及上面使用“P2”的另一個流程,那么所需的代碼片段應該返回 P1 和 P2
您可以使用multiprocessing.active_children()
返回multiprocessing.Process
對象的列表。
例如:
for p in multiprocessing.active_children():
print(f"child {p.name} is PID {p.pid}")
如果您沒有使用Process()
的name=
參數,則默認名稱為,例如Process-1
、 Process-2
等。
請注意,這與threading.enumerate()
具有相同的限制,因為它僅標識已使用.start()
啟動但尚未終止的進程。
另請注意 Python 文檔中的這一點:
調用它具有“加入”任何已經完成的進程的副作用
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.