标题:使用Manager实现多进程共享变量时,如果在主进程内不使用join(),为什么会报 ...
只看楼主
lxj_0601
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2021-1-27
结帖率:50%
已结贴  问题点数:6 回复次数:3 
使用Manager实现多进程共享变量时,如果在主进程内不使用join(),为什么会报错?
使用Manager实现多进程共享变量时,如果在主进程内不使用join(),为什么会报错?

from multiprocessing import Process, Manager
def func(my_list, my_dict):
    my_list.append(10)
    my_list.append(11)
    my_dict['a'] = 1
    my_dict['b'] = 2

if __name__ == '__main__':
    manager = Manager()
    my_list = manager.list()
    my_dict = manager.dict()
    ls=[]
    for i in range(0, 2):
       p = Process(target=func,args=(my_list,my_dict))
       p.start()
       ls.append(p)
    # for p in ls:
    #     p.join()
    print(my_list)
搜索更多相关主题的帖子: join Manager 报错 进程 变量 
2021-04-06 11:34
fall_bernana
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:17
帖 子:240
专家分:2086
注 册:2019-8-16
得分:3 
回复 楼主 lxj_0601
#报 AttributeError: 'ForkAwareLocal' object has no attribute 'connection' 的原因
#运行这段代码时,主进程执行完了,断开了连接,而子进程要连接,此时会报错
#所以可以用join(),让主进程等待子进程的结束
2021-04-06 14:38
sssooosss
Rank: 9Rank: 9Rank: 9
等 级:禁止访问
威 望:3
帖 子:664
专家分:1115
注 册:2019-8-27
得分:3 
共同学习
2021-04-12 08:36
asd191155707
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2021-4-17
得分:0 
共同学习
2021-04-20 15:34



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-505355-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.283262 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved