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

在将程序从 Python3.6 升级到 Python3.9 后,遇到异步非阻塞子进程无法启动的问题。尽管在 Python3.6 中可以正常运行,但现表现为一个子线程似乎阻止了后续子线程的启动,且在线程中调用函数会立即结束。已排除常见错误,如Pool的apply_async使用、参数传递问题、event()函数使用和模块导入等。考虑尝试使用 pathos 模块或 Coroutine 解决方案。
摘要由CSDN通过智能技术生成

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

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

def job(x):
    return x * x

if 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, os

class Student(object):
    def __init__(self, name, score):
        self.name = name
        self.score = score

    def 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 = 0
        while True:
 
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值