I am playing around with python multiprocessing module and wanted to be able to display the name of the currently executing process.
If I create a custom MyProcess class inheriting from multiprocessing.Process I can print the process's name in the following way
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()
However if I am creating processes using the constructor of Process class
from multiprocessing import Process
def somefunc():
print Process.name #1
p = Process(target=somefunc)
p.start()
print p.name #2
#2 works but #1 doesn't. Is there a way I could print the name of the currently executing process inside somefunc
?
You can use the current_process
function:
from multiprocessing import Process, current_process
def somefunc():
print current_process().name
if __name__ == '__main__':
p = Process(target=somefunc)
p.start()
print p.name
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With