使用multiprocessing.Queue实现多进程,Queue中put的是自己定义的类实例,put后报错如下:
AttributeError: Can‘t pickle local object ‘Worker.init.<locals>.<lambda>
类实例中涉及到文件,日志,远程连接等操作,这些好像是不能被pickle的(我理解比较浅,有大佬知道懂的可以评论区告诉我)
解决不了,后来改成多线程处理了
记录一下参考过的资料
1、 https://github.com/DeepVoltaire/AutoAugment/issues/16
这个issue 关注这个评论,我没试,可以参考
2、一文搞明白Python多进程编程:multiprocessing库
https://blog.youkuaiyun.com/weixin_44604541/article/details/117229684
3、python中multiprocessing、multiprocessing.dummy和threading用法笔记
https://blog.youkuaiyun.com/u012969412/article/details/82768882
4、【Python】Python进程池multiprocessing.Pool八个函数对比:apply、apply_async、map、map_async、imap、starmap…
https://blog.youkuaiyun.com/BobYuan888/article/details/109266020