使用multiprocessing时的DictProxy object, typeid 'dict' at ; '__str__()' failed
代码是想用multiprocessing做多进程的变量共享
代码如下:
from multiprocessing import Process, Manager
from multiprocessing import queues
# 每个子进程执行的函数
# 参数中,传递了一个用于多进程之间数据共享的特殊字典
f = codecs.open("exceptionFile.o", "a", "utf-8")def func1(d,q, f,s):print(d)f.write("11\n")d['k3']= 'k3's.add('33')print('11' in s)def func2(d,q, f,s):print(d)f.write("11\n")print('33' in s)q = queues.Queue(1000)
for j in range(1000):q.put(j)# 在主进程中创建特殊字典
m = Manager()
d = m.dict()
s = set()
s.add('11')
d['k1'] = 'k1'
d['k2'] = 3
p1 = Process(target=func1, args=(d,q,f,s))
p1.start()p2 = Process(target=func2, args=(d,q,f,s))
p2.start()
报了如下错误:
<DictProxy object, typeid 'dict' at 0x7f578c642bd0; '__str__()' failed>
Process Process-2:
Traceback (most recent call last):File "/usr/local/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap
<DictProxy object, typeid 'dict' at 0x7f578c642bd0; '__str__()' failed>
Falseself.run()File "/usr/local/lib/python2.7/multiprocessing/process.py", line 114, in runself._target(*self._args, **self._kwargs)File "test.py", line 12, in func1d['k3']= 'k3'File "<string>", line 2, in __setitem__File "/usr/local/lib/python2.7/multiprocessing/managers.py", line 755, in _callmethodself._connect()File "/usr/local/lib/python2.7/multiprocessing/managers.py", line 742, in _connectconn = self._Client(self._token.address, authkey=self._authkey)File "/usr/local/lib/python2.7/multiprocessing/connection.py", line 169, in Clientc = SocketClient(address)File "/usr/local/lib/python2.7/multiprocessing/connection.py", line 308, in SocketClients.connect(address)File "/usr/local/lib/python2.7/socket.py", line 228, in methreturn getattr(self._sock,name)(*args)
error: [Errno 2] No such file or directory
错误原因: 主进程已经退出
解决办法: 在代码的最后加上如下两句:
p1.join()
p2.join()
这表示主进程要等待p1和p2进程执行完了再继续执行
使用multiprocessing时的DictProxy object, typeid 'dict' at ; '__str__()' failed相关推荐
- 在verp设置parent和child关系时,child object没有随着parent object变化的情况
在verp中发现,设置parent和child关系时,child object没有随着parent object变化的情况: pickTarget=sim.getObjectHandle('pickT ...
- flash文本呈现html啥意思,显示flash内容时用的OBJECT和EMBED标签区别介绍
显示flash内容时用的OBJECT和EMBED标签区别介绍 发布时间:2014-05-13 18:03:29 作者:佚名 我要评论 要在网页中正常显示flash内容,那么页面中必须要有指定f ...
- Python3 初学实践案例(10)对象转字典 object to dict
Python3 初学实践案例(10)对象转字典 object to dict 我在写代码的时候遇到一个问题,就是 sqlalchemy 从数据库中查的的结果是一个对象,我虽然可以直接把这个对象用 x. ...
- pandas read_json时ValueError: Expected object or value的解决方案
大家好,我是herosunly.985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用.曾获得阿里云天池比赛第一名,科大讯飞比赛第三名,CCF比赛第四名.拥有多项发明专利.对机器学 ...
- Mac安装truffle框架时出现✓ Preparing to download box ✖ Downloading Unbox failed! Error: connect的解决方法
Mac安装truffle框架时出现✓ Preparing to download box ✖ Downloading Unbox failed! Error: connect的解决方法 https:/ ...
- [UE4]android打包时,设备上弹出错误:Failed to open descriptor file uproject
UE4以shipping模式在android设备上Launcher时,游戏启动时会提示错误: Failed to open descriptor file uproject 网上查了下,UE官方论坛上 ...
- 预测数据时数据类型是object导致报错TypeError: unsupported operand type(s) for -: ‘str‘ and ‘float‘
解决方法 更换数据类型: data:pd.DataFrame = data.astype('int64') # 或是: data:pd.DataFrame = data.astype('float') ...
- 使用Spring JDBC时遇到的Software caused connection abort: recv failed问题
在使用Spring jdbc连接数据库时遇到一个头疼的问题:程序启动以后,如果长时间不访问调用,当再次调用时会报错: 引用 org.springframework.dao.DataAccessReso ...
- 使用 yarn 安装时,报错node_modules\node sass:Command failed.
npm install -g mirror-config-china --registry=http://registry.npm.taobao.org npm install node-sass y ...
最新文章
- 改善深度学习训练的trick总结 | CSDN博文精选
- R语言_高级数据管理
- jQuery 插件---hotkeys快捷键(热键).
- leetcode算法题--0~n-1中缺失的数字
- 湖北沙洋中学2021年6月高考成绩查询,2021年荆门中考分数线公布填报志愿时间及录取结果什么时候出...
- matlab按某一列排序
- Java字符串indexOf(int ch,int fromIndex)方法,带示例
- 微信公众平台开发(150)——从新浪云SAE上传图片到图文消息
- 搭配android环境,Android Studio环境搭配所用到的工具和配置
- ARouter 源码历险记 (二)
- 装饰者模式(C#)实现
- GPRS网络总体结构
- 怎么获取jquery版本_获取jQuery版本
- Excel Video Game Sales视频游戏销售分析
- google搜索自己博客文章小记
- Google的图片处理库和条码处理库、汉字转拼音库
- 唐巧总结的40个国人iOS技术博客
- 你不能只会flex居中布局,精制动画讲解所有flex布局方式,通俗易懂教程
- android界面UI美化:沉浸模式、全透明或半透明状态栏及导航栏的实现
- esp8266设置sta失败_ESP8266 – ESP8266WiFiSTA库 – disconnect