python多线程操作字典_Python中使用多线程的迭代字典

我想使用Python中的多线程和队列(以限制线程数量)迭代字典中的字典(模拟目录或网站的结构)。我创建mainDict来模拟这个mainDict = {"Layer1": {"Layer11": 1, "Layer12": 1, "Layer13": 1, "Layer14": 1, "Layer15": 1," Layer16": 1},

"Layer2": {"Layer21": 2, "Layer22": 2, "Layer23": 2, "Layer24": 2, "Layer25": 2, "Layer26": 2},

"Layer3": {"Layer31": 4, "Layer32": 4, "Layer33": 4, "Layer34": 4, "Layer35": 4, "Layer36": 4},

"Layer4": {"Layer41": 8, "Layer42": 8, "Layer43": 8, "Layer44": 8, "Layer45": 8, "Layer46": 8},

"Layer5": {"Layer51": 16, "Layer52": 16, "Layer53": 16, "Layer54": 16, "Layer55": 16, "Layer56": 16},

"Layer6": {"Layer61": 32, "Layer62": 32, "Layer63": 32, "Layer64": 32, "Layer65": 32, "Layer66": 32}}

以及一个Crawler类,为mainDict的每个第一个子字典实例化一个爬虫程序。在

我想创建2个线程(一次有限数量的线程/爬虫程序以减少CPU使用量),它们可以爬网到层(I)(I=1..6)。每个线程将爬行直到到达“树”的叶子,然后移动到下一个字典(例如,爬虫程序0将遍历第1层,爬虫程序1将遍历第2层,完成后遍历第3层…)。在

^{pr2}$

我有两个问题:它只创建2个线程,并获取队列的前2个元素(子字典),然后不执行任何操作,甚至不退出;它保持挂起状态

在threader()函数中,它说它将获得一个子字典,但会迭代另一个子字典,如crawallleaves()中的print所示

我想学Python和线程,但我不知道我做错了什么,你能帮我做这个吗?在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值