在升级程序到 python3.9 后,异步非阻塞的子进程起不来了,实际代码在python3.6 版是可以运行的 :

程序逻辑及相关使用方式大概是这样的

def job(x):return x * xif name == “main”:pool multiprocessing.Pool()res = [pool.apply_async(target=job, (i,)) for i in range(3)]print [r.get() for r in res]

更接近的代码是这样的:

#第一个 python.py import time, osclass Student(object):def __init__(self, name, score):self.name = nameself.score = scoredef print_score(self):print('%s: %s' % (self.name, self.score))def get_grade(self):if self.score >= 90:return 'A'elif self.score >= 60:return 'B'else:return 'C'def output(self):print('Run task %s (%s)...' % (self, os.getpid()))i = 0while True:time.sleep(1)self.print_score()time.sleep(2)print("grade:", self.get_grade())i += 1

在另外的文件进行多进程

from multiprocessing import Pool
import os, time
from job import Studentdef facade_it(ts, name):p = Pool(4)for i in range(5):stu = Student.Student(name[i], (i + 15) * ts)p.apply_async(stu.output)print("up apply_async")print('Waiting for all subprocesses done...')p.close()p.join()print('All subprocesses done.')if __name__ == '__main__':l = ['Allen', "Belle", "Carl", "David", "Even"]ts = 5facade_it(ts, l)

示例中的 student 只是小学生,实际项目中的是个大学生,仅此而已。

具体表现

能以func=* 的方式运行起来,不是变成单线程了,一个子线程(假的)会block 后面的子线程

能启动多个线程,线程中调用 示例函数不成功,立即结束了 ( CAO~~~!Cao~~~ CI !AO !)

网上一般给以下几种情况:

1. 用Pool的apply_async(异步非阻塞)的时候传入实例函数会出错,或者说是子进程被跳过似的感觉(python2.7)

https://www.cnblogs.com/renxchen/p/9909708.html

很少人用python2 了 ,不过有解决方案

https://stackoverflow.com/questions/19924104/python-multiprocessing-handling-child-errors-in-parent

2. 在pool.apply_async(target, args)中的args参数元祖中,只有一个参数,但是参数后面没有加逗号

这是基础知识问题。另外,这个是子进程不抛出错误(Python 的锅????)

3. 使用了进程中的event()函数。 老版本的方式,不建议用

4. 用Manager来管理multiprocessing.Queue,这样线程池中的子线程才会运行

我的问题不在以上范围中,也不是因为引入其他模块的类文件的原因(一开始以为是这个很欣喜)

,对于一个Python 菜鸡,只能放飞自我了

可能有以下解决方式:

1. pathos模块 试试

https://zhuanlan.zhihu.com/p/46378282

2. Coroutine

https://www.jianshu.com/p/bda2d6059723

python多进程子进程不运行问题--未解决相关推荐

  1. python多进程子进程不运行问题

    precess使用进程池队列管理问题 背景: 在进行视频取帧的过程中,为了加速,用process多进程同时去做,将取到的帧放到队列中,之后会同时有另外的进程同时进行处理. 但是在实际的操作中发现,直接 ...

  2. python无法在终端运行程序_解决项目pycharm能运行,在终端却无法运行的问题

    解决项目pycharm能运行,在终端却无法运行的问题 报 ModuleNotFoundError: No module named '****' 错误. 运行的文件夹又不在根目录下, 在python ...

  3. python生成exe文件运行闪退解决方法

    ** python生成exe文件运行闪退解决方法: ** 使用pyinstaller生成.exe文件: pyinstaller -F filename.py 用python写了一个程序,在python ...

  4. 解决:pycharm运行程序时在Python console窗口中运行 һ����ң�������1�����

    解决:pycharm运行程序时在Python c 问题: 在pycharm中右键点击run运行程序,发现没有打开run窗口运行,而是在Python console窗口中运行的. 解决方法: 打开菜单栏 ...

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

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

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

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

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

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

  8. PyTorch多进程子进程瘫痪,解决办法

    这里写自定义目录标题 PyTorch多进程子进程瘫痪 问题描述 原代码 解决方法 PyTorch多进程子进程瘫痪 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页.如果你想学习如何使用 ...

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

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

最新文章

  1. 不包含本位置值的累乘数组
  2. Android Telephony分析(二) ---- RegistrantList详解
  3. Redola.Rpc 集成 Consul 服务发现
  4. 区块链100讲:区块链的TPS性能
  5. Netty 的 内存池 是如何实现的
  6. Dubbo项目基本业务基础构建
  7. github README.md使用
  8. 我爱Markdown (2)
  9. NGN学习笔记9——网络演进与融合
  10. 牛逼!一款基于SpringBoot的微信点餐系统
  11. Nature、science、cell旗下刊物
  12. 51单片机用c语言在液晶1602上显示汉字,51单片机LCD1602显示汉字(中文)源程序...
  13. TRANSFORMER-TRANSDUCER:END-TO-END SPEECH RECOGNITION WITH SELF-ATTENTION
  14. html5页面风格,H5页面的设计风格有哪些?
  15. mysql数据库约束详解_深入理解mysql数据库的约束
  16. lstm 文本纠错_中文文本纠错算法--错别字纠正的二三事
  17. 如何给电脑加装硬盘?
  18. WIndow10下安装UR机器人接口ur_rtde
  19. Drupal XSS漏洞(CVE-2019-6341)
  20. Verilog在编写第一行代码之前

热门文章

  1. 百度员工:上午11点上班,晚上9点下班,年薪80万买房太轻松了
  2. 计算机机房消房安全管理制度,计算机机房消防安全管理制度
  3. win7查看隐藏文件_u盘删除文件怎么恢复?
  4. 目录服务器的互联网标准协议,2014年4月自学考试《互联网及其应用》试题
  5. SAS多元线性回归分析与残差分析(画残差图,残差的正太概率图含变量交叉项,写残差向量,计算回归系数的置信区间,检验自变量系数是否相等,利用R²,MSE,CP,PRESS准则和逐步回归法选择最优方程)
  6. 51单片机undefined identifier问题求助
  7. Apple Swift学习资料汇总
  8. 全球首次!32岁青年科学今天发现!道翰天琼认知智能机器人平台API接口大脑为您揭秘。
  9. 网络电视精灵 完整版
  10. 蚁群算法(Ant Colony Optimization)