#!/usr/bin/env python from multiprocessing import Process import os import time import random def sleeper(): numsecs = random.randrange(5) + 1 print "[%s] Starting to sleep for %s seconds" % (os.getpid(), numsecs) time.sleep(numsecs) print "[%s] Done sleeping" % os.getpid() if __name__ == '__main__': print "[%s] parent start" % os.getpid() children = [Process(target=sleeper) for x in range(5)] print "[%s] children created but not spawned" % os.getpid() for child in children: print "[%s] spawning a child" % os.getpid() child.start() print "[%s] all children spawned" % os.getpid() for child in children: child.join() print "[%s] parent joined child [%s]" % (os.getpid(), child.pid) print "[%s] all children joined" % os.getpid()