Dieser Code zeigt die Struktur von dem, was ich versuche zu tun.Erstellen Sie eine Kopie eines Objekts, anstatt die Reinitialisierung innerhalb eines neuen Multiprocessing-Prozesses
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
Das Problem ist, dass jeder Prozess beginnt mit viel Zeit neu berechnet T verbringen, anstatt die ursprüngliche T zu verwenden, die einmal berechnet wurde. Gibt es einen Weg dies zu verhindern? T hat eine schnelle (tiefe) Kopiermethode, also kann ich Python dazu bringen, diese zu verwenden, anstatt sie neu zu berechnen?