den Subprozess-Modul verwenden, ich bin mit 1000 Anrufen (1) parallel schlafen:Parallele Anrufe Schlaf tun aufaddieren nicht
import subprocess
import time
start = time.clock()
procs = []
for _ in range(1000):
proc = subprocess.Popen(["sleep.exe", "1"])
procs.append(proc)
for proc in procs:
proc.communicate()
end = time.clock()
print("Executed in %.2f seconds" % (end - start))
Auf meiner 4-Core-Maschine, führt dies zu einer Ausführung Zeit von ein paar Sekunden, weit weniger als ich erwartet hatte (~ 1000s/4).
Wie wird es optimiert? Kommt es auf die Sleep-Implementierung an (diese stammt von den Windows-Git-Executables)?
Nun, natürlich die Ausführungszeiten von Dingen, die parallel passieren nicht summieren. Wenn ich 8 Stunden zur selben Zeit schlafe und 8 Stunden schlafe, vergehen 16 Stunden? – user2357112
Warum haben Sie 500 Sekunden erwartet? –
Wie bist du auf die 500er Figur gekommen? – njzk2