from multiprocessing import Process, Queue def f(datasize, q): q.put(range(datasize)) def demo(datasize = 40*1024*1024, timeout = None): q = Queue() worker = Process(target=f, args=[datasize,q]) worker.start() try: data = q.get(timeout = timeout) finally: worker.join() print "Hello." demo(timeout=1) print "Happy."