python3中子进程不报错的问题

在Python3中使用multiprocessing模块创建子进程时遇到子进程未执行的问题,原因是worker函数中的os.getpid()错误。通过添加try-except异常处理,能够及时捕获并打印错误,方便调试。在修正os.getpid()为os.grtpid()后,子进程正常运行,证明了try-except结构在排查问题中的实用性。
摘要由CSDN通过智能技术生成

昨天学了下子进程创建,然后自己做实例的时候,发现子进程不运行,而是直接结束了主进程。由于是子进程,所以有没有错误看不见。

from multiprocessing import Pool
import os,time,random


def worker(msg):


    t_start = time.time()
    print("%s开始执行,进程号为%d"%(msg, os.grtpid()))
    time.sleep(random.random()*2)
    t_stop = time.time()
    print(msg,"执行完毕,耗时%0.2f"%(t_stop - t_start))


po=Pool(3)
for i in range(0,10):
    po.apply_async(worker,(i,))




print("-----strat-----")
po.close()
po.join()
print("------end------")

结果就是

----start----
-----end-----


错误原因是定义worker时,os.getpid()写错

之后在函数中加入异常处理即可发现错误,即:


def worker(msg):
    try:
        t_start = time.time()
        print("%s开始执行,进程号为%d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值