本文主要是介绍进程 5.进程池,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
进程池
进程池
是一个进程的容器,可以自动创建指定数量的进程,并管理进程
当需要创建的子进程数量很大,可以使用multiprocessing模块中的Pool类
初始化Pool时,可以指定最大进程数,当有新的请求提交到Pool中,如果Pool未满,就会自动创建一个新的进程来执行该请求
如果Pool中的进程数已达最大值,那么该请求就会等待,直到Pool中有进程被释放,然后使用该进程来执行请求
进程池的两种工作方式:
同步:apply()
进程池中的进程执行有先后顺序,一个执行完毕后下一个才能执行
异步:apply_async()
进程执行没有顺序,多个进程同时执行
1.异步执行必须close,表示不再接收新的任务
2.主进程不再等待进程池执行结束后才退出,所以必须join
import multiprocessing
import time
# 执行的函数
def work():
print('work',multiprocessing.current_process())
time.sleep(0.5)
if __name__ == '__main__':
# 创建进程池
pool = multiprocessing.Pool(3)
for i in range(10):
# 同步方式执行
# pool.apply(work)
# 异步方式执行
pool.apply_async(work)
# 必须close和join
pool.close()
pool.join()
这篇关于进程 5.进程池的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!