I was working the following example from Doug Hellmann tutorial on multiprocessing:

import multiprocessing def worker(): """worker function""" print 'Worker' return if __name__ == '__main__': jobs = [] for i in range(5): p = multiprocessing.Process(target=worker) jobs.append(p) p.start()

When I tried to run it outside the if statement:

import multiprocessing def worker(): """worker function""" print 'Worker' return jobs = [] for i in range(5): p = multiprocessing.Process(target=worker) jobs.append(p) p.start()

It started spawning processes non-stop, and the only way to stop it was reboot!

Why would that happen? Why it did not generate 5 processes and exit? Why do I need the if statement?