如何在multiprocessing.pool中命名进程?

Sve*_*ely 12 python python-multiprocessing

如果我创建一个包含4个工作组的池并将它们设置为执行某些任务(使用pool.apply_async(..)),我可以从使用中访问每个进程的名称multiprocessing.current_process().name,但是如何从父进程设置名称(这主要用于日志记录)?

TkT*_*ech 9

Process.name只是一个二传手,您可以自由分配给它.

游泳池采取了initializer争论.这可以是任何可调用的,并且每个子进程启动时都会调用一次.您可以将此指向一个函数,该函数name将该进程的属性设置为您想要的任何内容.

  • @TkTech @Sveltely @alasar 在我用作池的**初始化器** 的函数中我使用`multiprocessing.current_process().name = 'some string'` 设置进程的名称并使用日志记录属性**% (processName)s** 在日志格式化程序中,但仍然在日志消息中我看到为进程创建的默认名称(例如 PoolWorker-1、PoolWorker-2)而不是我在初始化函数中为进程设置的名称. 你能告诉我出了什么问题吗? (3认同)