Python 多进程进程池Queue进程通信
2024-09-25 14:08:32
from multiprocessing import Pool,Manager
import time def hanshu(queue,a):
n = 1
while n<50:
# print('\r正在工作%d'%a,end='')
n+=1
# 【步骤3】往队列中发送一条消息
queue.put(a)
time.sleep(2) def main():
print('执行main函数')
for i in range(0,10):
po.apply_async(hanshu,args=(q,i)) # 【步骤2】向进程池中添加任务,hanshu是做任务的函数,(i,)是传参,是个元组 q是队列 if __name__ == '__main__':
q=Manager().Queue() #使用Manager中的Queue方法 【步骤1】创建一个队列
po = Pool(10) # 创建进程池 并限定最多同时运行10个进程
main()
print('---start-----') po.close() # 关闭进程池不再接受新的进程任务
# po.join() #等待进程池里面的任务完成
while True:
name=q.get()
print('\r收到消息 与任务不堵塞',name ,end='')
最新文章
- 使用mapreduce计算环比的实例
- C++异常处理:try,catch,throw,finally的用法
- 用vue.js学习es6(四):Symbol类型
- centos 安装haproxy 1.6.3
- 使用coverage工具统计python单元测试覆盖率
- org.apache.solr.common.util.ContentStream.java及其实现类
- mysql 基础知识
- 在 Web 层应用程序中使用Spring
- Linux Kernel ‘exitcode_proc_write()’函数本地缓冲区溢出漏洞
- [Angular 2] Refactoring mutations to enforce immutable data in Angular 2
- JQuery控制input的readonly和disabled属性
- virtualbox从.VDI备份文件新建/恢复虚拟机(包括恢复各个备份节点)
- Android开发学习之路--Activity之生命周期
- Esper剖析
- Git配置信息相关命令
- Ionic2 下处理 Android 设备下返回按钮的事件
- Mybatis-Plus 实战完整学习笔记(八)------delete测试
- Golang 接口interface
- 全面认识一下.NET 4.0的缓存功能 (转)
- Error -26631: HTTP Status-Code=400 (Bad Request) for
热门文章
- 19.0-uC/OS-III内存管理
- 执行git add .命令时报warning: LF will be replaced by CRLF in yarn.lock.
- shiro 角色与权限的解读
- Vuex之理解Getters的用法
- java框架之SpringBoot(11)-缓存抽象及整合Redis
- abap 断言
- [js]js栈内存的全局/私有作用域,代码预解释
- Redis单机配置以及集群(sentinel、jediscluster)配置
- Kubernetes 网络改进的三项实践分享
- mecacheq的配置