#!/usr/bin/env python from multiprocessing import Pool import os import time import random def worker(data): print "[%s] starting process, working on [%s]" % (os.getpid(), data) time.sleep(random.randrange(5)) success = (random.random() > 0.2) if success: print "[%s] finished [%s] successfully" % (os.getpid(), data) else: print "[%s] error processing [%s]" % (os.getpid(), data) return success if __name__ == '__main__': mydata = ["the", "quick", "brown", "fox", "jumped", "over", "the", "lazy", "dog"] p = Pool(4) # defaults to number of CPUS # can also provide an initialization function # and arguments to it print "[%s] Pool created" % os.getpid() results = p.map(worker, mydata) print "[%s] Pool map completed" % os.getpid() print results