Prozesse In Python
In der Computer-Wissenschaft-Terminologie ist ein Prozess eine ausgeführte Instanz eines Programms im Arbeitsspeicher des Computers. Diese Prozesse im Speicher können auch andere Prozesse spawnen. Die Python Programmiersprache, ähnlich wie andere Sprachen geeignet für die Entwicklung von desktop-Software bietet eine Bibliothek um die Erstellung und Pflege von Prozessen auf einem Computersystem zu erleichtern.
Prozesse
Wenn ein Benutzer eine Anwendung z. B. einen Webbrowser beginnt, wird die Anwendung eines laufenden Prozesses im Betriebssystem. Vor der Ausführung befindet sich ein Programm einfach als Daten auf der Festplatte. Bei der Ausführung lädt das Betriebssystem das Programm in den Hauptspeicher oder RAM. Alle laufende Anwendungen werden Speicherplatz im RAM-Speicher vom Betriebssystem gegeben, während sie laufen. Während der Ausführung überwacht das Betriebssystem die Anwendungsprozesse durch eine Prozesstabelle, die beschreibt den Zustand des Prozesses und in dem es sich im Speicher befindet.
Laichen Prozesse
Prozesse können andere Prozesse, die zur gleichzeitigen Aufgaben während der Programmausführung spawnen. Diese "Mehrprozessoren" ermöglicht Programmen, viele verschiedene Aufgaben gleichzeitig verarbeiten. Eine Programm in Python, kann beispielsweise einen separaten Prozess unter Verwendung der Bibliothek "Mehrprozessoren" und seine "Process"-Objekt, wie im folgenden Beispiel erzeugen:
von Mehrprozessoren Import Prozess
Import-os
DEF hello():
Print('Hello')
p = Process(target=hello)
p.Start() //starts Kindprozess "p"
Prozesse, die Arbeit
Ein untergeordneter Prozess, da bestimmte Aufgaben, führen diese Aufgabe, während der Elternprozess ihre Aufgabe ausführt. Im folgenden Beispiel ein Python-Programm erzeugt er einen Prozess und der übergeordnete Prozess und der untergeordnete Prozess Aufrufen derselben Methode "os.getpid()", die die numerische Id des aktuellen Prozesses zurückgibt:
DEF pId():
Drucken (' ich bin Prozess: ', os.getpid())
p = Process(target=pId)
p.Start()
Drucken (' ich bin Prozess: ', os.getpid())
p.Join()-//ends 'p'-Prozess
Die Ausgabe dieser beiden Verfahren ist wie folgt. Beachten Sie, dass die übergeordnete "Befehl mit Kleinbuchstaben"Prozess"ist in der Regel drucken" führt erste.
Ich bin Prozess: 57883
Ich bin Prozess: 57884
Freigeben von Daten zwischen Prozessen
Zwei Prozesse können auch Daten zwischen einander mit einem "Pipe"-Objekt freigeben, die eine Verbindung zwischen zwei Prozessen erstellt. Mit diese Verbindungsobjekte kann ein untergeordneten Prozess senden Daten an einen übergeordneten Prozess, ermöglichen den Elternprozess, bearbeiten oder Drucken Sie die gespeicherten Daten. Das folgende Beispiel zeigt die Verwendung von Pipe-Objekt:
DEF send(child):
Child.Send ([1, 2, 3]) //the Kindprozess sendet die Daten bei der Ausführung
Child.Close()
Wenn Name == 'Haupt':
parent, child = Pipe()
p = Process(target=f, args=(child,))
p.start()
print parent.recv() //parent process receives data from child
p.join