python-使用带有loky和lambda函数的procees映射,pickle问题

python-使用带有loky和lambda函数的procees映射,pickle问题,python,parallel-processing,pickle,Python,Parallel Processing,Pickle,当我尝试使用loky library创建进程池时,我遇到了一个关于酸洗的小问题 我的代码类似于以下形式: 此代码在类方法中运行 param_1 # predefined param_2 # predefined pool.map(lambda x: some_other_method(x,param_1,param_2,self.string_param), some_array) 池是一个不稳定的进程池 运行此代码会给我一个“TypeError:无法pickle thread.lock

当我尝试使用loky library创建进程池时,我遇到了一个关于酸洗的小问题

我的代码类似于以下形式:

此代码在类方法中运行

param_1 # predefined
param_2 # predefined

pool.map(lambda x: some_other_method(x,param_1,param_2,self.string_param), some_array)
  • 池是一个不稳定的进程池
运行此代码会给我一个“TypeError:无法pickle thread.lock对象”错误

我假设这是因为self不是一个可拾取的对象

当我将这行更改为类似的内容时:

temp_variable = selef.string_param
pool.map(lambda x: some_other_method(x,param_1,param_2,temp_variable), some_array)
它起作用了

因此,在我看来,即使它不需要对整个self对象进行pickle,因为我只使用了字段“string_param”,它仍然会对它进行pickle

我的问题是,它是如何工作的?是不是因为它在一个lambda里面?为什么它会试图腌制自己