2014-11-14 45 views
7

如果我創建4名工人池,並設置他們做一些任務(使用pool.apply_async(..)),我可以從內使用multiprocessing.current_process().name訪問每一個進程的名字,但我設置爲從父進程名稱(這主要是如何記錄)?如何命名multiprocessing.pool中的進程?

回答

4

Process.namejust a setter,您可以自由分配給它。

泳池需要一個initializer參數。這可以是任何可調用的,當每個子進程啓動時它將被調用一次。您可以將其指向一個函數,該函數將該進程的name屬性設置爲任何您想要的值。

+0

謝謝,它的工作原理。我正在使用初始化器+ setproctitle。 – alasarr

+0

在我作爲** **初始化用於池的函數@TkTech @Sveltely @alasar我使用'multiprocessing.current_process設置進程的名稱()。名=「一些string''和使用日誌記錄屬性** %(processName)■**在記錄格式,但仍處於日誌消息我看到了,我在初始化設置過程中的工藝(例PoolWorker-1,PoolWorker-2),而不是名稱創建的默認名稱功能。你能告訴我什麼是錯的嗎? –

相關問題