windows下python多进程multiprocessing报错TypeError: can’t pickle _thread.lock objects,而同样的用法在Linux下没问题。
如下会报错TypeError: can’t pickle _thread.lock objects
sub_run = SubProductAndPositionProfitOverview(m_sub_trade_plan_names, self.stock_info,self.db_redis_traderecord)
sub_process = Process(target=sub_run.Run, args=())
sub_process.start()
原因是self.db_redis_traderecord是自定义的类对象,无法序列化,即
user_pickle = pickle.dumps(self.db_redis_traderecord)
会报错TypeError: can’t pickle _thread.lock objects。
知道出问题在哪就能相应解决,后面是把传递的参数放到进程里初始化,但相应的是每个进程都要初始化一次。不知是否还有其他办法,望知道的朋友们不吝赐教。