博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 进程池--->pool
阅读量:7154 次
发布时间:2019-06-29

本文共 982 字,大约阅读时间需要 3 分钟。

1.什么是进程池:

进程池内部维护一个进程序列,当使用时,则去进程池中获取一个进程,如果进程池序列中没有可供使用的进进程,那么程序就会等待,直到进程池中有可用进程为止。

2.参数介绍:

Pool(numprocess,initializer,initargs) 创建进程池

numprocess:要创建的进程数,如果省略,将默认使用cpu_count()的值initializer:是每个工作进程启动时要执行的可调用对象,默认为Noneinitargs:是要传给initializer的参数组 3.代码示例:
from multiprocessing import Pool  #导入pool模块import os,timedef work(n):    print('task <%s> is runing' %os.getpid())    time.sleep(2)    return n**2if __name__ == '__main__':    print(os.cpu_count())  #这条命令用来获取cpu的个数    p=Pool(4)  #指定最大的进程 不写默认为cpu的个数。    # for i in range(10):    #     res=p.apply(work,args=(i,))  #apply 同步执行。一个一个执行,效率偏低 (了解)        # print(res) 获取的结果是 work的返回值。也就是return后面的结果。    res_l=[]    for i in range(10):        res=p.apply_async(work,args=(i,)) #异步的提交任务,只负责往队列中加任务。这样会生成一些对象。        res_l.append(res)   #将产生的对象方法放到一个列表中    #    p.close()  #不允许在向进程池中提交任务。    p.join() #等待p结束完成在执行主程序中的取值方法。    for res in res_l:        print(res.get())  #使用get方法从进程池中取值。

 

 

转载于:https://www.cnblogs.com/yxwang/p/7453115.html

你可能感兴趣的文章
Linux shell break、continue、exit、return的用法 及exit、return的区别
查看>>
手动实现 SpringMVC
查看>>
thinkphp 验证码的使用
查看>>
NSUserDefaults保存应用中的数据
查看>>
安装gevent错误/gevent/core.so: undefined symbol: event_global_current_base_ 的解决方案
查看>>
XML序列化点滴
查看>>
Android游戏与应用开发最佳学习路线图
查看>>
【转】NSJSONSerialization解析JSON数据
查看>>
POJ 3252 Round Numbers(数学问题)
查看>>
本地使用CVS
查看>>
模拟系统提示框
查看>>
在dos下运行java jar包,并把命令存为bat文件
查看>>
<如何成为一个成功的职业经理人>读书笔记2
查看>>
Java EE企业系统性能问题的原因和解决建议[也适用于.NET]
查看>>
IBM 云计算 笔记
查看>>
GNU make manual 翻译( 一百零一)
查看>>
GNU make manual 翻译( 一百四十五)
查看>>
【OpenCV学习】cvseqpartition序列分类
查看>>
HttpClient
查看>>
mfc 双冒号
查看>>