热门

最新

红包

立Flag

投票

同城

我的

发布
weixin_32759777
东方佑
3 年前
trueweixin_32759777

from multiprocessing import Pool
import multiprocessing
def work(i):
print("work'{}'执行中......".format(i), multiprocessing.current_process().name, multiprocessing.current_process().pid)
# time.sleep(2)
print("work'{}'执行完毕......".format(i))
return i
if __name__ == '__main__':
# 创建进程池
# Pool(3) 表示创建容量为3个进程的进程池
pool = Pool(3)
# 进程返回对象列表
res_l=[]
# 每个进程结果列表
res_data=[]
# 分发任务
for i in range(10):
# 利⽤进程池同步执⾏work任务,进程池中的进程会等待上⼀个进程执行完任务后才能执⾏下⼀个进程
# pool.apply(work, (i, ))
# 使⽤异步⽅式执⾏work任务
res=pool.apply_async(work, (i, ))
res_l.append(res)

#获取计算结果
for one in res_l:
res_data.append(one.get())

# 进程池关闭之后不再接受新的请求
pool.close()
# 等待po中所有子进程结束,必须放在close()后面, 如果使⽤异步⽅式执⾏work任务,主线程不再等待⼦线程执⾏完毕再退出!
pool.join()
# 输出最后结果
print(res_data)

CSDN App 扫码分享
分享
1
2
打赏
  • 复制链接
  • 举报
下一条:
领域模型的复杂性和程序偶发的技术复杂性—透彻
立即登录