没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
2页
很简单,dictionary changed size during iteration,就是说在遍历的时候,字典改变了大小,有两种方法可以解决。 加上互斥量什么的,互斥访问就行了。 这里用的是这种,比较无脑的,直接将它的keys转化为list,相当于将keys存在了一个临时变量里面,所以即使字典的大小改变了,也没关系,不会在本次遍历中使用新加入的,如果是删除的,直接把异常抛了就行。 PlayerSocketDict = {1:"hello world"} # todo... add some item for id in list(PlayerSocketDict.keys()):
资源推荐
资源详情
资源评论
解决:解决:“dictionary changed size during iteration”
很简单,dictionary changed size during iteration ,就是说在遍历的时候,字典改变了大小,有两种方法可以解决。
加上互斥量什么的,互斥访问就行了。
这里用的是这种,比较无脑的,直接将它的keys转化为list,相当于将keys存在了一个临时变量里面,所以即使字典的大小改变了,也没关系,不会在本次遍历中使用新加入的,如果
是删除的,直接把异常抛了就行。
PlayerSocketDict = {1:"hello world"}
# todo... add some item
for id in list(PlayerSocketDict.keys()):
print PlayerSocketDict.get(id)
错误示例
import threading
testDict = {}
itemId = 0
def addNewItem():
for i in range(1,1000):
testDict[i] = "hello : " + str(i)
def printItem():
for i in range(1, 100):
for id in testDict:
print testDict.get(id)
thread1 = threading.Thread(target=addNewItem,args=())
thread2 = threading.Thread(target=printItem,args=())
thread1.start()
thread2.start()
thread1.join()
thread2.join()
正确示例
import threading
testDict = {}
itemId = 0
def addNewItem():
for i in range(1,1000):
testDict[i] = "hello : " + str(i)
def printItem():
for i in range(1, 100):
for id in list(testDict.keys()):
print testDict.get(id)
thread1 = threading.Thread(target=addNewItem,args=())
thread2 = threading.Thread(target=printItem,args=())
thread1.start()
thread2.start()
thread1.join()
thread2.join()
资源评论
weixin_38587473
- 粉丝: 7
- 资源: 891
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于jsp+mysql的JSP九宫格日记本源码.zip
- 基于jsp+mysql的JSP会员卡积分管理系统源码.zip
- 仿小米商城微信小程序源码+项目说明.zip
- 基于jsp+mysql的JSP个人日记本源码.zip
- 南溪CN No1 fps网络断网工具.zip
- 基于jsp+mysql的JSP宠物商城源码.zip
- C++开发基于Qt的音乐播放器的设计与实现项目源码+项目使用说明(毕业设计).zip
- 基于jsp+mysql+servlet的JSP图书馆图书管理系统源码.zip
- C++开发基于Qt的音乐播放器的设计与实现项目源码+项目使用说明(毕业设计).zip
- 【2024win11软件启动速度反应慢解决方法附工具】
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功