Python多进程Pool进程池的使用

 时间:2024-10-16 01:46:04

1、打开Python开发工具IDLE,新建‘poll.py’文件,写代码如下:from multiprocessing import Pooldef fun(x): return x*2if __name__ == '__main__': p = Pool(5) #如果参数为空,默认为os.cpu_count() print(p.map(fun, [1, 2, 3]))注意这里一定要写if __name__ == '__main__':在多进程程序里,必须指明主进程

Python多进程Pool进程池的使用

3、还有另外一种方法,孀晏弁钾也能实现同样的功能,改写‘pool.py’代码如下:from multiprocessing import Pooldef fun(x): return x*2if __n锾攒揉敫ame__=='__main__': p = Pool(5) list1=[] for i in range(5): print (i) res = p.apply_async(fun,[i,]) list1.append(res) for j in list1: print (j.get())这个看起来更好理解一点,apply_async(fun,[i,])是创建异步进程的方法,进程创建后立即执行,get()用于获取内容,注意不能再第一个循环里用,不然会等待进程get返回值阻塞主进程的继续执行。

Python多进程Pool进程池的使用

5、如果需要等待所有进程结束再继续执行主进旯皱镢涛程,需要改写代码如下:from multiprocessing import Pooldef fun(x): return x*2if __na罪焐芡拂me__=='__main__': p = Pool(5) list1=[] for i in range(5): print (i) res = p.apply_async(fun,[i,]) list1.append(res) p.close() p.join() print('进程池创建的进程已结束') for j in list1: print (j.get())p.close(),只是不允许再使用进程池创建新进程,必须在p.join()前

Python多进程Pool进程池的使用
  • 毕业论文(word2007)如何快速添加引用格式
  • 提示,不在以下 request 合法域名列表中怎么办
  • visio如何自定义一个工具栏个性化
  • word中插入的图片都变成空白框了怎么办
  • 如何开启Intellij IDEA的Tips of Day小工具
  • 热门搜索
    澳洲个人旅游签证 儋州旅游 海洋旅游 乌镇旅游攻略两天一夜 云南著名旅游景点 徐州旅游团 澳大利亚旅游局 关于进一步促进旅游投资和消费的若干意见 旅游线路报价 九寨沟旅游价格