precess使用进程池队列管理问题

背景:

在进行视频取帧的过程中,为了加速,用process多进程同时去做,将取到的帧放到队列中,之后会同时有另外的进程同时进行处理。

但是在实际的操作中发现,直接将队列放到参数的位置,所放到进程池中的子线程是不会运行的。

于是上网查找了一些资料,发现要用Manager来管理multiprocessing.Queue,这样线程池中的子线程才会运行。

代码如下:

无法运行的代码:

def x(q):print('hello,world')q = multiprocess.Queue(3)
pool = multiprocess.Pool(3)
for i in range(10):pool.apply_async(x, args=(q,))
pool.close()
pool.join()

上面的代码是不会运行的,最主要的原因就是进程中的参数队列在创建的时候没有用Manager进行管理。

改成下面代码就会成功运行

def x(q):print('hello,world')m = multiprocess.Manager()
q = m.Queue(3)
pool = multiprocess.Pool(3)
for i in range(10):pool.apply_async(x, args=(q,))
pool.close()
pool.join()

此外我还遇到两种进程池中的进程不执行

  1. pool.apply_async(target, args)中的args参数元祖中,只有一个参数,但是参数后面没有加逗号。
  2. 使用了进程中的event()函数

python多进程子进程不运行问题相关推荐

  1. python多进程子进程不运行问题--未解决

    在升级程序到 python3.9 后,异步非阻塞的子进程起不来了,实际代码在python3.6 版是可以运行的 : 程序逻辑及相关使用方式大概是这样的 def job(x):return x * xi ...

  2. python多进程运行死机_python多进程假死

    结论:python多进程间用Queue通信时,如果子进程操作Queue满了或者内容比较大的情况下,该子进程会阻塞等待取走Queue内容(如果Queue数据量比较少,不会等待),如果调用join,主进程 ...

  3. python获取子进程返回值_Python 从subprocess运行的子进程中实时获取输出的例子 Python如何抓取程序的输出?...

    关于python中用subprocess调用exe子进程的问题不懂我的人有什么资格对我指指点点,不了解我的人凭什么对我说三道四的. python杀死子进程后继续执行后面程序 程序a(python写成) ...

  4. python多进程卡死_python multiprocessing子进程hangs问题

    0.前言 此文诞生源于python多进程的一个诡异表现,如果你使用pytho多进程过程中,发现子进程被挂起(一直处于Sleeping),请参考本文档. 本文先简单介绍python多进程常规用法,然后主 ...

  5. Python 多进程的进程池pool运行时报错:ValueError: Pool not running

    本文仅供学习交流使用,如侵立删!demo下载见文末 Python 多进程的进程池pool运行时报错:ValueError: Pool not running def main(self, num):& ...

  6. Python 多进程笔记 — 启动进程的方式、守护进程、进程间通信、进程池、进程池之间通信、多进程生产消费模型

    1 面向过程启动多进程 Python 操作进程的类都定义在 multiprocessing 模块,该模块提供了一个 Process 类来代表一个进程对象,这个对象可以理解为是一个独立的进程,可以执行另 ...

  7. python多进程详解

    目录 python多进程 序.multiprocessing 一.Process process介绍 例1.1:创建函数并将其作为单个进程 例1.2:创建函数并将其作为多个进程 例1.3:将进程定义为 ...

  8. Python 多进程开发与多线程开发

    我们先来了解什么是进程? 程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程.程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述文本:进程 ...

  9. python多进程_python语法:多进程

    之前在一篇文章中写过,有关于Python线程的问题: 是枝裕和:内:用python多线程同时处理大量文件​zhuanlan.zhihu.com 当然我的写的文章都是面对于一些初学者和python代码实 ...

最新文章

  1. C_functions
  2. 国内卫星通信技术发展及应用概述
  3. Python:利用python编程将上海十六区,2020年5月份房价实时地图(数据来源房天下)进行柱状图、热图可视化
  4. 用户强烈反对产品改动,如何应对?
  5. 乐观锁与悲观锁各自适用场景是什么?
  6. my97DatePicker 自定义扩展方法(实现备忘录)
  7. matlab的annotation,科学网—annotation in matlab Graph - 夏靖的博文
  8. 485通讯的校验和_RS485通讯如何实现三菱PLC对三菱变频器的控制?
  9. 熟练计算机数字键盘,电脑键盘盲打及快速输入技巧【一】
  10. linux系统etc什么意思,etc.是什么意思 linux下的etc是什么意思
  11. SolarWinds 黑客攻击可能与 Turla APT 相关
  12. 图计算发展简史(1)
  13. 李宏毅机器学习(22)
  14. Socket 【网络通信 - Socket】
  15. sqlserver 日期比较
  16. 一些技术管理常见问题笔记
  17. SQL截取字符串,保留后几位
  18. 新闻|智链万源CEO董宁倾情加盟“产业区块链场景应用大课”
  19. PTS PCR DTS 详解
  20. 工业AI时代,大数据云平台未来5年迎最佳发展时机

热门文章

  1. OpenTracing语义标准
  2. S7-1200PLC 与温控仪表Modbus RTU通信
  3. 微信中的表情符号代码对照表
  4. 使用kubeadm部署k8s(2、k8s集群部署)
  5. Spring MVC 之 DispatcherServlet之主题
  6. 生僻字html乱码,Tomcat 5.5.X及以上版本的生僻字乱码解决办法
  7. 欢迎使用CSDN-markdown编辑器不啵啵啵啵啵啵啵啵啵啵啵啵
  8. 五大学科竞赛奖项&106所综合评价院校对照表(分省统计)
  9. laravel 一次对多个字段进行 increment 或者decrement 操作
  10. 虚拟机安装python3_虚拟机如何安装python