Python Pipe Beispiel

Python Pipe Beispiel
Python ist eine merkmalreiche Sprache, die sowohl die neuesten als auch die traditionellen Programmierkonzepte unterstützt. Die Verwendung von Pfeifen wird unter das Konzept der Inter-Process-Kommunikation erfolgt, in dem zwei oder mehr Prozesse Daten oder Informationen miteinander austauschen. Dies geschieht nur, wenn zwei oder mehr Prozesse gleichzeitig ausgeführt werden, wodurch die Funktionalität der parallelen Verarbeitung dargestellt wird. Um zu erfahren, warum Sie Python -Pipes verwenden und verstehen, wie sie in dieser Programmiersprache implementiert werden, müssen Sie diesen Artikel gründlich lesen.

Was ist eine Pfeife in Python??

Der Vorgang, der diese Informationen weitergibt, schreibt in die Rohr. Wie bei anderen Programmiersprachen unterstützt Python auch die Implementierung von Pipes.

Warum sollte ich in Python ein Rohr verwenden??

Wir alle wissen, dass die Kommunikation mit Inter-Process ein sehr wichtiges Programmierkonzept ist. Da das Konzept der parallelen Verarbeitung eingeführt wurde. Dieses Konzept ermöglichte es uns, mehrere Prozesse zu einem Zeitpunkt durchzuführen, die unabhängig funktionieren können. Wir möchten jedoch manchmal, dass ein Prozess einige Informationen an einen anderen vermittelt, der eine weitere Verarbeitung benötigt. Hier sind die Rohre in Python nützlich.

Ein Rohr in Python kann leicht verwendet werden, um Informationen von einem Ende zum anderen zu übertragen. Dadurch können zwei Prozesse sehr bequem miteinander austauschen. Das einzige, was bei der Implementierung von Rohren in Python oder in jeder anderen Programmiersprache gepflegt werden muss, ist, dass nach dem Schreiben eines Vorgangs in die Rohr. In ähnlicher Weise sollte der Schreibdateideskriptor beim Lesen eines Prozesses blockiert werden. Dies geschieht, um die Datenintegrität zu gewährleisten und dass die Daten zwischen den Lese- und Schreibprozessen synchronisiert werden.

Um die Implementierung von Rohren in Python weiter zu beleuchten.

Hinweis: Sie können die Spyder IDE verwenden, um ein Programm in Python zu implementieren, indem Sie entweder Windows 10 oder eine beliebige Verteilung von Linux verwenden. Allerdings das „Betrieb“.fork () ”-Funktion, die im folgenden Beispiel verwendet wird. Daher können Sie den folgenden Code in Windows 10 nicht implementieren.

Beispiel für die Verwendung eines Rohrs in Python:

Für die Darstellung der Verwendung einer Pfeife in Python wollten wir einen Code implementieren, der die Kommunikation zwischen einem übergeordneten Prozess und einem untergeordneten Prozess ermöglichen kann, indem wir eine Rohr verwenden. Um eine solche Kommunikation zu erleichtern, müssen Sie sich den folgenden Code ansehen:

In diesem Python -Code für die Pipe -Implementierung haben wir das „OS“ -Modul von Python zuerst importiert, das diese Implementierung erleichtert. Dann haben wir ein Rohr mit dem „Betriebssystem“ erstellt.PIPE () -Funktion und haben sie den beiden Dateideskriptoren „R“ und „W“ zum Lesen und Schreiben von Daten zugewiesen. Danach wollten wir einen Kinderprozess mit der Prozess -ID hervorbringen, ich.e., PID, der mit Hilfe des „Betriebssystems“ durchgeführt werden kann.Fork () ”Funktion. Dann haben wir eine "if" -Antage, die auf der PID operiert als "0" i.e., Wenn die PID der eines übergeordneten Prozesss ist, wird dieser „wenn“ Block ausgeführt. Innerhalb dieses Blocks "If" blockiert der übergeordnete Prozess zunächst den "Lese" -Dateideskriptor, i.e., r, damit der übergeordnete Prozess problemlos ohne Unterbrechungen in das Rohr schreiben kann. Dies geschieht, indem das „Betriebssystem verwendet wird.schließen (r) ”Funktion.

Danach wollten wir den Benutzer über die Konsole benachrichtigen, die der übergeordnete Prozess nun an die Pipe schreibt, für die wir eine Nachricht mit dem Befehl „Druck“ angezeigt haben. Dann haben wir eine "Text" -Variable, zu der wir den Text zugewiesen haben, den der übergeordnete Prozess an die Pipe schreiben möchte.

Danach haben wir das „Betriebssystem“ genannt.Write () ”Funktion. Diese Funktion akzeptiert zwei Argumente, ich.e., Der Schreibdateideskriptor und der Text, der in die Pipe geschrieben werden soll. Wenn diese Funktion aufgerufen wird, wird der Text automatisch in das Rohr geschrieben. Danach wollten wir den auf die Pfeife auf unserer Konsole geschriebenen Text anzeigen, was wir mit der Hilfe der Funktion „Druck“ machen werden, indem wir die Textvariable entschlüsseln.

Dann gibt es eine "sonst" -Anweisung, die funktioniert, wenn die PID nicht größer als "0" i ist.e., Die PID ist die eines Kinderprozesses; Nur dann wird dieser "sonst" Block ausgeführt. Innerhalb dieses Blocks "sonst" blockiert der untergeordnete Prozess zunächst den "Schreib" -Dateideskriptor, ich.e., W, um den Text ohne Änderungen leicht auf das Rohr zu lesen. Dies geschieht, indem das „Betriebssystem verwendet wird.schließen (w) ”Funktion.

Danach wollten wir den Benutzer über die Konsole benachrichtigen, die der untergeordnete Prozess jetzt aus dem Rohr liest, für das wir eine Nachricht mit dem Befehl „Druck“ angezeigt haben. Anschließend haben wir den Wert des geöffneten Lesedateideskriptors „R“ unserem ursprünglich deklarierten Lesedateideskriptor zugewiesen. Schließlich wollten wir den Text aus dem Rohr von unserem untergeordneten Prozess auf unserer Konsole mit der Funktion „Drucken“ anzeigen, indem wir die Funktion „Druck“ verwenden. Nachdem wir diesen Python -Code in der Spyder IDE geschrieben haben, haben wir ihn einfach gespeichert und dann ausgeführt.

Sobald dieser Code ausgeführt wurde, stellte sich heraus, dass seine Ausgabe im Bild unten etwas angezeigt wurde:

In dieser Ausgabe sehen Sie, dass die erste Nachricht, die auf der Konsole erschien. Die zweite Nachricht, die auf der Konsole erschien, lautete „geschriebener Text: Willkommen mein Kind!”, Der den von dem übergeordneten Prozess an die Pipe geschriebenen Text darstellt. Dann lautete die dritte Meldung, die in der Ausgabe angezeigt wurde. Schließlich lautete die vierte Nachricht, die auf der Konsole angezeigt wurde!Das repräsentiert einfach den Text, der vom Kinderprozess aus dem Rohr gelesen wurde.

Auf diese Weise können Sie mit Rohren in Python arbeiten und noch komplexere Beispiele erstellen, in denen Sie eine vollwertige Kommunikation zwischen den übergeordneten und den Kinderprozessen darstellen können.

Abschluss:

Zu Beginn dieses Artikels haben wir kurz über die Rohre in Python gesprochen. Dann gingen wir ein wenig weiter, indem wir erklärten, wie sie funktionieren und warum wir sie überhaupt verwenden sollten. Danach haben wir erklärt, wie die Rohre in Python mit Hilfe eines nützlichen Beispiels implementiert werden könnten, in dem ein Prozess einen anderen Informationen vermittelt. Sobald Sie dieses Beispiel durchlaufen haben, werden Sie schnell verstehen, wie Rohre in Python implementiert werden, und dann können Sie komplexere Programme implementieren, in denen zwei Prozesse miteinander kommunizieren.