运用pool进程池启动大量子进程
2024-08-25 00:17:36
# Pool进程池类
from multiprocessing import Pool
import os
import time
import random def run(index):
print("子进程%s启动----进程ID:%s"%(index, os.getpid()))
t1 = time.time()
time.sleep(random.random()*5)
t2 = time.time()
print("子进程%s结束----进程ID:%s--耗时:%2f" % (index, os.getpid(),t2-t1)) if __name__ == "__main__":
print("启动主进程") #利用进程池类创建进程池对象
#参数:表示可以同时执行的进程数量
#由于pool的默认值为CPU核心数,如果有4个核心,则至少需要5个子进程才能看到结果
#Pool()里面的参数为数字,代表同时几个子进程一起执行任务
pool = Pool()
for i in range(8):
#创建子进程并放入进程池中统一管理
#参数为要执行的任务,和给任务传的参数
pool.apply_async(run, args=(i,)) #进程池对象调用join()之前必须先调用close(),意思是关闭进程池,调用close()之后就不能再把创建出来的子进程中,放入到进程池中统一管理了
pool.close()
#pool对象调用join方法,主进程会等待进程池中所有的子进程结束在执行主进程
pool.join() print("结束主进程")
启动主进程
子进程0启动----进程ID:11836
子进程1启动----进程ID:3828
子进程2启动----进程ID:4328
子进程3启动----进程ID:14076 #由此能看出同时运行4个子进程,每结束一个子进程,然后开启一个子进程,并且一直保持4个子进程同时运行,运维pool()的参数默认为核心的数量,是可以自定义的
子进程2结束----进程ID:4328--耗时:0.921062
子进程4启动----进程ID:4328
子进程1结束----进程ID:3828--耗时:1.192999
子进程5启动----进程ID:3828
子进程4结束----进程ID:4328--耗时:1.110084
子进程6启动----进程ID:4328
子进程3结束----进程ID:14076--耗时:2.043996
子进程7启动----进程ID:14076
子进程5结束----进程ID:3828--耗时:3.409121
子进程0结束----进程ID:11836--耗时:4.916067
子进程7结束----进程ID:14076--耗时:3.830013
子进程6结束----进程ID:4328--耗时:4.367969
结束主进程
最新文章
- AJAX POST&;跨域 解决方案 - CORS
- css透明设置
- p/invoke碎片,对结构体的处理
- Git的基础
- HTML5实战1
- redis 安装及相关问题解决
- 破解windows server 2008 的登录密码。有效的
- 服务器 CentOS上yum安装Nginx服务
- mysql创建用户和创建数据库赋值用户操作权限
- phpwind数据同步本地之后板块排版乱
- Tomcat修改网址旁边的小图标
- 页面常见效果js实现
- bzoj 1041: [HAOI2008]圆上的整点 本原勾股數組
- BZOJ 1653 [Usaco2006 Feb]Backward Digit Sums ——搜索
- 使用ABP打造SAAS系统(1)——环境准备
- [Swift]LeetCode80. 删除排序数组中的重复项 II | Remove Duplicates from Sorted Array II
- [IOI2007] sails 船帆
- 《Java编程思想第四版》第 16 章 设计范式-提到观察者模式
- 拿什么守护你的Node.JS进程: Node出错崩溃了怎么办?
- 项目中Java Resources有红叉,其它没有,解决办法
热门文章
- 小程序之背景音乐——wx.backgroundAudioManager
- 「校内训练 2019-04-23」越野赛车问题 动态dp+树的直径
- Linux中检查内存使用情况的命令
- 51nod 1836:战忽局的手段(期望)
- springboot2集成redis5报错:io.lettuce.core.RedisException: io.lettuce.core.RedisConnectionException: DENIED Redis is running in protected
- 【丛林】HTML Table 表格浅谈(边框、隔行变色
- CSS定位,转载的
- Go的struct
- 102.kaldi 斯坦福语音识别工具的编译
- shell脚本——注释(单行注释 多行注释)