Multiprocessing Bomb

Posted by iKarampa on Stack Overflow See other posts from Stack Overflow or by iKarampa
Published on 2010-04-23T09:57:54Z Indexed on 2010/04/23 10:03 UTC
Read the original article Hit count: 273

Filed under:
|

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'

jobs = []
for i in range(5):
    p = multiprocessing.Process(target=worker)
    jobs.append(p)
    p.start()

It started spawning processes non-stop, without any way of to terminating it. Why would that happen? Why it did not generate 5 processes and exit? Why do I need the if statement?

© Stack Overflow or respective owner

Related posts about python

Related posts about multiprocessing