Ich führe ein Perl-Skript durch das Unterprozessmodul in Python unter Linux. Die Funktion, die das Skript ausführt, wird mehrmals mit variabler Eingabe aufgerufen.Warum muss ich .wait() mit dem Subprozessmodul von Python verwenden?
Allerdings, wenn ich diese Funktion zweimal ausführen, wird die Ausführung des ersten Prozesses gestoppt, wenn der zweite Prozess startet. Ich kann mein gewünschtes Verhalten durch Hinzufügen
process.wait()
nach dem Aufruf des Skripts bekommen, so bin ich nicht wirklich fest. Ich möchte jedoch herausfinden, warum ich das Skript nicht so oft mit Subprozess ausführen kann, wie ich möchte, und das Skript diese Berechnungen parallel ausführen lassen, ohne darauf warten zu müssen, dass es zwischen den einzelnen Ausführungen beendet wird.
UPDATE
Der Täter war nicht so aufregend: der Perl-Skript, eine gemeinsame Datei verwendet, die für jede Ausführung neu geschrieben wurden.
Die Lektion, die ich daraus gelernt habe, war jedoch, dass der Garbage Collector den Prozess nicht löscht, sobald er gestartet wird, weil dies keinen Einfluss auf mein Skript hatte, nachdem ich es aussortiert hatte.
Sind Sie sicher, dass der zweite abgeschlossen ist? Meinst du den * self * Aufruf zweimal (selbe 'variable_input')? – knitti
Die zweite wird wie erwartet abgeschlossen. Ich meine mit verschiedenen 'variable_input'. Zum Beispiel "test_1" und "test_2". – Viktiglemma
Was ist mit dem Versuch, einen Verweis auf beide Prozesse, z. Prozess zurückgeben und in einer Variablen speichern? – knitti