我正在玩 python 多处理模块,希望能够显示当前正在执行的进程的名称。
如果我创建一个继承自 multiprocessing.Process 的自定义 MyProcess 类,我可以按以下方式打印进程的名称
from multiprocessing import Process
class MyProcess(Process):
def __init__(self):
Process.__init__(self)
def run(self):
#do something nasty and print the name
print self.name
p = MyProcess()
p.start()
但是,如果我使用 Process 类的构造函数创建进程
from multiprocessing import Process
def somefunc():
print Process.name #1
p = Process(target=somefunc)
p.start()
print p.name #2
#2 有效但#1 无效。有没有办法在 somefunc
中打印当前正在执行的进程的名称?
最佳答案
您可以使用 current_process
功能:
from multiprocessing import Process, current_process
def somefunc():
print current_process().name
if __name__ == '__main__':
p = Process(target=somefunc)
p.start()
print p.name
关于python multiprocessing - 在使用 Process.start(target=func) 调用的函数中访问进程名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11535984/