这段代码显示了我正在尝试做的事情的结构。
import multiprocessing
from foo import really_expensive_to_compute_object
## Create a really complicated object that is *hard* to initialise.
T = really_expensive_to_compute_object(10)
def f(x):
return T.cheap_calculation(x)
P = multiprocessing.Pool(processes=64)
results = P.map(f, range(1000000))
print results
问题在于,每个进程都从花费大量时间重新计算 T 而不是使用计算一次的原始 T 开始。有没有办法防止这种情况?T 有一个快速(深度)复制方法,所以我可以让 Python 使用它而不是重新计算吗?