Prozesse In Python

December 10

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