/ / Python-Hintergrundprozess - Python, Python-2.7, Multiprozessierung

Python-Hintergrundprozess - Python, Python-2.7, Multiprocessing

Ich versuche, einen Prozess in Python zu schreiben, derläuft unbegrenzt und erzeugt genau "n" Anzahl von Prozessen im Hintergrund, die Python-Code ausführen. Die Ausgabe / das Ergebnis dieser Hintergrundprozesse ist mir egal, aber ich würde gerne wissen, wann einer von ihnen beendet wird, so dass immer "n" Prozesse laufen. Irgendwelche Ideen, wie ich dazu oder Referenzmaterial gehen kann, das helfen könnte?

Danke & Grüße, Azeem

Antworten:

3 für die Antwort № 1

Ich würde eine verwenden multiprocessing.Pool für diese Art von Arbeit. Sie können einen Pool mit einer bestimmten Anzahl von Arbeitsprozessen erstellen und diesen Python-Funktionen zuweisen, die ausgeführt werden sollen.

from multiprocessing import Pool
import time

def f(x):
print(x)
time.sleep(1)
print("finished", x)

pool = Pool(processes=4)

for x in xrange(10):
pool.apply_async(f, [x])

pool.close()

pool.join()

Gibt Folgendes zurück:

0
1
2
3
("finished", 0)
("finished", 1)
("finished", 2)
("finished", 3)
4
5
6
7
("finished", 5)
("finished", 7)
("finished", 4)
("finished", 6)
8
9
("finished", 8)
("finished", 9)

3 für die Antwort № 2

Ich würde eine verwenden multiprocessing.Pool für diese Art von Arbeit. Sie können einen Pool mit einer bestimmten Anzahl von Arbeitsprozessen erstellen und diesen Python-Funktionen zuweisen, die ausgeführt werden sollen.

from multiprocessing import Pool
import time

def f(x):
print(x)
time.sleep(1)
print("finished", x)

pool = Pool(processes=4)

for x in xrange(10):
pool.apply_async(f, [x])

pool.close()

pool.join()

Gibt Folgendes zurück:

0
1
2
3
("finished", 0)
("finished", 1)
("finished", 2)
("finished", 3)
4
5
6
7
("finished", 5)
("finished", 7)
("finished", 4)
("finished", 6)
8
9
("finished", 8)
("finished", 9)