python-3.x - 多处理类型错误:无法腌制 _thread.lock 对象
问题描述
当我在 python3 上运行它时,出现错误:TypeError: can't pickle _thread.lock objects 例如:import time import multiprocessing from multiprocessing import Process,freeze_support,Manager,Queue,Pool q=Queue() pool=Pool(3) A类(对象):def init(self,varam):self.varam = varam
class class_one(object):
def __init__(self):
self.var = {}
self.list = []
self.get()
def get_result(self, varam):
q.put(A(varam))
def get(self):
for i in [6,7,8,9]:
self.list.append(pool.apply_async(self.get_result, (i, )))
#p = Process(target=self.get_result, args=(i, ))
#process_list.append(p)
#p.start()
pool.close()
pool.join()
if __name__ == '__main__':
freeze_support()
process_num =2
process_list = []
g = class_one()
for i in g.list:
print(i.get())
# for j in process_list:
# j.join()
# print(q.qsize())
# if q.empty():
# print("error")
# while (not q.empty()):
# print(q.get().varam)
# g.var[q.get().varam]=q.get()
解决方案
推荐阅读
- vba - 使用已经存在的名称创建类方法
- javascript - 动态注入具有脚本的 jquery html() 的潜在内存问题
- html - 为什么这个元素没有出现在 iPhone 上的所有浏览器中?
- python-3.x - 如何使用 python 将数据发送到扭曲类之外的服务器
- mysql - 将 MYSQL RAW 包含的哈希(加密)查询转换为 Laravel 雄辩的查询
- javascript - MS 团队上的 Botframework:将未解析的粘贴输入复制到后端
- tensorflow - 使用 load_weights() 在预训练权重上训练 keras 模型
- windows - 使用PowerShell在Windows 10中卸载软件包(第三方防病毒)
- .net - 为导入的包选择特定的框架
- github-actions - 在自定义 Github Action 中访问 Github 环境变量