簡體   English   中英

如何從 python 中的多處理模塊獲取當前正在運行的進程名稱

[英]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-1Process-2等。

請注意,這與threading.enumerate()具有相同的限制,因為它僅標識已使用.start()啟動但尚未終止的進程。

另請注意 Python 文檔中的這一點:

調用它具有“加入”任何已經完成的進程的副作用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM