通过multiprocessing的Pool类来控制进程池

简介: 通过multiprocessing的Pool类来控制进程池

 Pool(数字)#初始化一个Pool类,填写数字设置最大进程池的数量

如果新的请求提交到Pool类以后,会自动创建一个进程池去执行提交的请求

但是如果进程池已经占满,那么请求就会等待,直到池中的进程全部结束才会执行新的请求

下面我放了一些实例

#coding:utf-8frommultiprocessingimportPoolimportos,time,randomdefwork(msg):
start_time=time.time()
print("开始工作,执行进程号:",msg,os.getpid())
time.sleep(random.randint(1,2))#阻塞线程1-2秒stop_time=time.time()
print("结束工作,用时:",stop_time-start_time)
if__name__=='__main__':
p=Pool(3)#定义一个线程池,设置最大线程池数为3list= ["A","B","C"]
foriinlist:
p.apply_async(work,(i,))#括号中work是调用函数,i是将list中的元祖传递给目标p.close()#关闭线程池,关闭后p变量不再收到新的请求p.join()#join等待p变量中所有子进程执行完成,必须放在close()后面

image.gif

image.gif


目录
相关文章
|
8月前
|
Java API Go
线程介绍,线程与进程区别,如何使用多线程,Thread类,Runnable接口,补充知识(方法重载,方法重写)
线程介绍,线程与进程区别,如何使用多线程,Thread类,Runnable接口,补充知识(方法重载,方法重写)
|
1月前
|
消息中间件 Linux API
跨进程通信设计:Qt 进程间通讯类全面解析
跨进程通信设计:Qt 进程间通讯类全面解析
120 0
|
1月前
|
安全 Python
python多进程multiprocessing使用
如果你想在python中使用线程来实现并发以提高效率,大多数情况下你得到的结果是比串行执行的效率还要慢;这主要是python中GIL(全局解释锁)的缘故,通常情况下线程比较适合高IO低CPU的任务,否则创建线程的耗时可能比串行的还要多。GIL是历史问题,和C解释器有关系。 为了解决这个问题,python中提供了多进程的方式来处理需要并发的任务,可以有效的利用多核cpu达到并行的目的。【2月更文挑战第5天】
69 0
|
1月前
|
并行计算 程序员 API
Python多进程编程:利用multiprocessing模块实现并行计算
Python多进程编程:利用multiprocessing模块实现并行计算
398 0
|
安全 Unix 程序员
Python 标准类库-并发执行之multiprocessing-基于进程的并行 1
Python 标准类库-并发执行之multiprocessing-基于进程的并行
122 1
|
存储 安全 Unix
Python 标准类库-并发执行之multiprocessing-基于进程的并行 2
Python 标准类库-并发执行之multiprocessing-基于进程的并行
231 0
|
Windows
pyinstaller 打包含有multiprocessing多进程代码异常处理
pyinstaller 打包含有multiprocessing多进程代码异常处理
|
Python
multiprocessing库:Python像线程一样管理进程(二)
multiprocessing库:Python像线程一样管理进程(二)
113 1
multiprocessing库:Python像线程一样管理进程(二)
|
API Python Windows
multiprocessing库:Python像线程一样管理进程(一)
multiprocessing库:Python像线程一样管理进程(一)
136 1
multiprocessing库:Python像线程一样管理进程(一)
|
Java 数据库 芯片
物无定味适口者珍,Python3并发场景(CPU密集/IO密集)任务的并发方式的场景抉择(多线程threading/多进程multiprocessing/协程asyncio)
一般情况下,大家对Python原生的并发/并行工作方式:进程、线程和协程的关系与区别都能讲清楚。甚至具体的对象名称、内置方法都可以如数家珍,这显然是极好的,但我们其实都忽略了一个问题,就是具体应用场景,三者的使用目的是一样的,换句话说,使用结果是一样的,都可以提高程序运行的效率,但到底那种场景用那种方式更好一点?
物无定味适口者珍,Python3并发场景(CPU密集/IO密集)任务的并发方式的场景抉择(多线程threading/多进程multiprocessing/协程asyncio)

热门文章

最新文章

相关实验场景

更多