multiprocessing and __main__
is un
israel.unterman at gmail.com
Sun Jul 26 01:52:36 EDT 2009
Hi,
Trying the multiprocessing module for the first time, I spent quite a
bit on making this code run:
from multiprocessing import Process
import time
def my_process():
i = 0
while 1:
print i
i += 1
time.sleep(0.5)
p = Process(target=my_process, args=())
p.start()
print 'Process started'
The result was not what I expected, it seems like the process restarts
all the time, and the message 'Process started' keeps getting
printed...
Going back to the documentation, I realized that the doc was really
serious about the line:
if __name__ == '__main__' .. which I always ignore, and by changing
the code to
if __name__ == '__main__':
p = Process(target=my_process, args=())
p.start()
print 'Process started'
the problem was solved.
So my question is what actually happens when I call p.start()? Is the
entry file reloaded under a different module name?
Thanks
iu2
More information about the Python-list
mailing list