原项目在未加入多进程模块的情况下,queue模块导入生成的队列能正常使用。
但是加入多进程后,执行报错 TypeError: can't pickle _thread.lock objects
网上查阅资料:
- 将 from queue import Queue 修改为 from multiprocessing import Queue 即可修复该bug。
- 多进程模块中的队列Queue的使用方法与queue中的使用方法一致Queue
bug原因:
- 在多进程模式下,queue模块的队列,数据无法在多个进程之间共享。
- multiprocessing模块的队列,可以在多进程之间共享同一个变量的数据
网友评论