Ich kämpfe ein bisschen mit etwas, das eigentlich ganz einfach sein sollte. Ich habe eine Funktion, die einige lange Berechnung der Fall ist, vereinfachen es so loks:Python - einfachste Möglichkeit, Funktionen parallel zu betreiben
import time
def compute_stuff(number):
time.sleep(10)
return [number*2, number*4]
Ich möchte zwei Instanzen dieser Funktion parallel laufen zu lassen und ihre Ergebnisse in einem Array sammeln. Ich habe ein wenig über Twisted-Reaktor gelesen und es scheint, asynchrones Abfragen zu liefern, aber alles in einem Thread ausgeführt wird, so, wenn ich zB:
from twisted.internet import reactor
import time
def compute_stuff(number):
time.sleep(10)
return [number*2, number*4]
reactor.callWhenRunning(compute_stuff, 1)
reactor.callWhenRunning(compute_stuff, 4)
reactor.callWhenRunning(compute_stuff, 2)
reactor.run()
Es wartet auf den ersten Anruf zu beenden, bevor die nächste Ausführung . Gibt es eine Möglichkeit, es parallel zu machen? Ist Twisted sogar der Weg zu gehen?