import time from multiprocessing import Process,Pool def f1(n): time.sleep(0.5) # print(n) return n*n if __name__ == '__main__': pool = Pool(4) # pool.apply(f1,args=(2,)) #同步方法 res_list = [] for i in range(10): # print('任务%s'%i) #进程池的同步方法,将任务变成了串行 # res = pool.apply(f1,args=(i,)) # print(res) #进程池的异步方法 res = pool.apply_async(f1,args=(i,)) print(res) # as_result = res.get() #join的效果 # print(as_result) res_list.append(res) pool.close() #锁住进程池,不再让其他的程序往里面扔新的任务了,确保没有新的任务交给进程池里面的进程 pool.join() for r in res_list: print(r.get()) time.sleep(2) #主进程运行结束,进程池里面的任务全部停止,不会等待进程池里面的任务 print('主进程直接结束') p = Process(target=f1,)