为什么要在multiprocessing.pool之前定义pool.map的函数?

时间:2018-06-05 19:55:07

标签: python python-multiprocessing multiprocess

使用multiprocessing.pool和pool.map时,似乎必须在创建池之前定义map函数。为什么这有必要?

以下是工作版本:

import multiprocessing

def my_power(x):
  return x * x

_pool = multiprocessing.Pool()
my_list = _pool.map(my_power, list(range(10)))
print(my_list)

获取错误的版本,AttributeError:无法获取属性' my_power' ...

_pool = multiprocessing.Pool()

def my_power(x):
  return x * x

my_list = _pool.map(my_power, list(range(10)))
print(my_list)

1 个答案:

答案 0 :(得分:0)

对于多处理,代码需要序列化。我想运行时更容易在创建池之前序列化所有内容。否则,它必须分析并决定要序列化的内容。