Ich verwende das Modul Multiprozessing in Python. Bevor ich meine Hauptfunktion mit der Mapping-Funktion aufrufen kann, muss ich einige Eingaben vom Benutzer erhalten. Mein Problem ist, dass der Code vor der Hauptfunktion mehrfach ausgeführt wird, wenn ich die Hauptfunktion mit pool.map nenne Dieser sehr einfache Code zeigt mein Problem:mehrere Call-Körper Multicoreprocessing Python
from multiprocessing import Pool
result=range(1,5)
print('start')
def test(a):
print(a+10)
if __name__=="__main__":
pool = Pool(processes=2)
pool.map(test,result)
meine Ausgabe lautet dann:
start
start
11
12
13
14
start
Warum wird der Code vor der Testfunktion mehrmals ausgeführt?
Es ist nicht (Python 3.5 hier). Die Reihenfolge der Nummer in der Ausgabe variiert, so dass alles wie erwartet funktioniert. –
aber Start wird immer noch dreimal gedruckt, egal in welcher Reihenfolge es gedruckt wird. Bedeutet das nicht, dass die Druckanweisung und damit der Code vor der Testfunktion dreimal ausgeführt wird, wenn sie nur einmal ausgeführt werden soll? Dieses Problem erstreckt sich auf, wenn ich versuche, einige Eingaben vom Benutzer zu erhalten die Eingabe wird auch mehrmals gefragt – Bruno
Ich kann Ihre Ausgabe nicht reproduzieren - es wird nur "Start" – DomTomCat