zl程序教程

您现在的位置是:首页 >  其它

当前栏目

已解决RuntimeError: An attempt has been made to start a new process before the current process has fi

解决 to The an has New Process start
2023-09-27 14:27:32 时间

已解决RuntimeError: An attempt has been made to start a new process before the current process has finished its bootstrapping phase.

在这里插入图片描述

报错问题

粉丝群里面的一个小伙伴敲代码时发生了报错(当时他心里瞬间凉了一大截,跑来找我求助,然后顺利帮助他解决了,顺便记录一下希望可以帮助到更多遇到这个bug不会解决的小伙伴),报错信息如下:

在这里插入图片描述

在这里插入图片描述

解决方法

解决方法如下

在这里插入图片描述
通过main方法来执行python文件

# TODO 进程池的使用
from multiprocessing import Pool
import os, time, random
 
def worker(msg):
    t_start = time.time()
    print("%s开始执行,进程号为%d" % (msg,os.getpid()))
    # random.random()随机生成0~1之间的浮点数
    time.sleep(random.random()*2)
    t_stop = time.time()
    print(msg,"执行完毕,耗时%0.2f" % (t_stop-t_start))
 
def main():
    # 定义一个进程池,最大进程数3
    p = Pool(3) 
    for i in range(0,10):
        # Pool().apply_async(要调用的目标,(传递给目标的参数元祖,))
        # 每次循环将会用空闲出来的子进程去调用目标
        p.apply_async(worker,(i,))
 
    print("----start----")
    p.close()  # 关闭进程池,关闭后po不再接收新的请求
    p.join()  # 等待po中所有子进程执行完成,必须放在close语句之后
    print("-----end-----")
 
if __name__ == '__main__':
    main()

福利

每周会送6本技术书籍包邮到家
由于博主时间精力有限,每天私信人数太多,没办法每个粉丝都及时回复
大家可以进社区裙或者添加博主微信
点击下方链接即可
http://t.csdn.cn/6kInJ