首页 > 解决方案 > 多处理类型错误:无法腌制 _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()

标签: python-3.xmultithreadingpool

解决方案


推荐阅读