from multiprocessing import Pool def f(): return sum(range(50000)) if __name__ == '__main__': pool = Pool(processes=-3) #pool = Pool(processes=0) #pool = Pool(processes=3) results = [] for i in range(3): result = pool.apply_async(f) results.append(result) pool.close() pool.join() for result in results: print result.get()