Python异步进程池示例,同时可接收返回值

 时间:2026-05-03 11:08:29

1、import multiprocessing as mp

from time import sleep

import os

def work(msg):

   sleep(2)

   print(msg)

   return 'worker return' + msg #为函数调用返回相关值

if __name__ == '__main__':

   pool = mp.Pool(processes = 4)

   result = []

   for i in range(10):

       msg = "hello %d"%i

       r = pool.apply_async(work,(msg,))#向进程池中加入要执行的事件

       result.append(r)

#关于多线程执行的时候返回值是有序的原因说明:因为多线程只是执行的时候顺序是无序的,但是加入时是用for 有序插入,返回的对象在for的每次循环中顺序插入新列表,所以也是有序的。

   for res in result:  

       print(res.get())

   pool.close() #关闭进程池事件加入通道,即不能再向进程池中加入事件

   pool.join()  #阻塞等等进程池处理事件结束后回收进程池

2、参数说明:

apply_async(func,args,kwds)

功能: 以异步的方式将要执行的事件放入进程池(异步:放入进程池后无顺序执行

)

参数:

func : 要执行的函数

args : 给函数按位置传参

kwds : 给函数按照键值传参

返回值 : 返回事件执行后的返回值对象,可以通过调用get() 函数获取事件函数return的内容

Pool()

功能:创建进程池

返回值类型:进程池对象

参数<1>的名称为(processes=整数型)用于设置进程池中进程的数量。

  • 《中途岛战役之血战太平洋》新手操作经验分享
  • 三位一体2—第2关孤独荒野攻略
  • xcom 未知敌人新手攻略之开局必须注意的要点
  • 谷歌浏览器书签管理怎么修改书签名
  • 关于DSD文件播放卡机或卡死原因
  • 热门搜索
    上网用英语怎么说 qq怎么创群 下标怎么打 房产税怎么计算 怎么瘦腰 怎么看电脑的配置 刺激战场怎么改名字 k3次列车怎么买票 粽子叶怎么处理 养老保险怎么算