Heim  >  Artikel  >  Backend-Entwicklung  >  Es gibt verschiedene Möglichkeiten, zwischen PHP-Prozessen zu kommunizieren

Es gibt verschiedene Möglichkeiten, zwischen PHP-Prozessen zu kommunizieren

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼Original
2019-09-25 15:46:534351Durchsuche

Es gibt verschiedene Möglichkeiten, zwischen PHP-Prozessen zu kommunizieren

Interprozesskommunikation ist die Verbreitung oder der Austausch von Informationen zwischen verschiedenen Prozessen. Welche Medien gibt es also zwischen verschiedenen Prozessen, auf die beide Parteien zugreifen können? Die Benutzerbereiche von Prozessen sind unabhängig voneinander und können im Allgemeinen nicht aufeinander zugreifen. Die einzige Ausnahme ist der gemeinsam genutzte Speicherbereich. Der Systemraum ist jedoch ein „öffentlicher Ort“, sodass der Kernel offensichtlich solche Bedingungen bereitstellen kann. Darüber hinaus sind es die Peripheriegeräte, auf die beide Parteien zugreifen können. In diesem Sinne können zwei Prozesse natürlich auch Informationen über gewöhnliche Dateien auf der Festplatte oder über bestimmte Einträge und Datensätze in der „Registry“ oder anderen Datenbanken austauschen. Im weitesten Sinne handelt es sich dabei auch um ein Mittel zur Interprozesskommunikation, dies wird jedoch im Allgemeinen nicht zur „Interprozesskommunikation“ gezählt. Weil die Effizienz dieser Kommunikationsmethoden zu gering ist und die Anforderungen der Menschen an die Kommunikation zwischen Prozessen darin bestehen, über ein gewisses Maß an Echtzeitleistung zu verfügen.

Verwandte Empfehlungen: „php-Tutorial

Mehrere Hauptmethoden der Interprozesskommunikation unter Linux:

1. Pipes und Named Pipes

Pipes können für die Kommunikation zwischen Prozessen mit Affinitätsbeziehungen verwendet werden. Daher besteht die Möglichkeit, dass Pipes keine Namen haben Funktionalität ermöglicht es auch die Kommunikation zwischen unabhängigen Prozessen.

Es gibt drei Arten von Pipes:

(1) Gewöhnliche Pipe-PIPE: Es gibt normalerweise Einschränkungen, die andere ist nur für die Einwegübertragung geeignet Es kann nur zwischen übergeordneten und untergeordneten Prozessen verwendet werden.

(2) Streampipe s_pipe: Die erste Einschränkung wird aufgehoben und eine bidirektionale Übertragung ist möglich.

(3) Named Pipe name_pipe: Die zweite Einschränkung wird entfernt und die Kommunikation kann zwischen vielen unabhängigen Prozessen durchgeführt werden.

2. Signal

Signal ist eine relativ komplexe Kommunikationsmethode, die verwendet wird, um den empfangenden Prozess darüber zu informieren, dass ein Ereignis aufgetreten ist, und außerdem für die Kommunikation zwischen Prozessen verwendet wird Kommunikation: Der Prozess kann auch Signale an den Prozess selbst senden. Zusätzlich zur Unterstützung der frühen Unix-Signalsemantikfunktion Sigal unterstützt Linux auch die Signalfunktion Sigaction, deren Semantik dem Posix.1-Standard entspricht (tatsächlich basiert diese Funktion auf BSD, das zur Implementierung eines zuverlässigen Signalmechanismus die externe Schnittstelle vereinheitlichen und die Signalfunktion mithilfe der Sigaction-Funktion erneut implementieren kann.

3. Nachrichtenwarteschlange (Nachrichtenwarteschlange)

Die Nachrichtenwarteschlange ist eine verknüpfte Liste von Nachrichten, einschließlich der Nachrichtenwarteschlange des Posix-Nachrichtenwarteschlangensystems. Ein Prozess mit ausreichenden Berechtigungen kann Nachrichten zur Warteschlange hinzufügen, und ein Prozess mit Leseberechtigungen kann Nachrichten aus der Warteschlange lesen. Die Nachrichtenwarteschlange überwindet die Mängel von Signalen, die eine geringe Informationsmenge übertragen, Pipes können nur unformatierte Byteströme übertragen und die Puffergröße ist begrenzt.

4. Gemeinsamer Speicher

ermöglicht mehreren Prozessen den Zugriff auf denselben Speicherplatz, was die schnellste verfügbare IPC-Form ist. Es ist auf die geringere Betriebseffizienz anderer Kommunikationsmechanismen ausgelegt. Es wird häufig in Verbindung mit anderen Kommunikationsmechanismen wie Semaphoren verwendet, um eine Synchronisierung und einen gegenseitigen Ausschluss zwischen Prozessen zu erreichen.

5. Semaphor (Semaphor)

wird hauptsächlich als Mittel zur Synchronisierung zwischen Prozessen und zwischen verschiedenen Threads desselben Prozesses verwendet.

6. Socket

Ein allgemeinerer prozessübergreifender Kommunikationsmechanismus, der für die prozessübergreifende Kommunikation zwischen verschiedenen Maschinen verwendet werden kann. Es wurde ursprünglich für den BSD-Zweig von Unix-Systemen entwickelt, ist aber mittlerweile allgemein auf andere Unix-ähnliche Systeme portierbar: Sowohl Linux- als auch System V-Varianten unterstützen Sockets.

Das obige ist der detaillierte Inhalt vonEs gibt verschiedene Möglichkeiten, zwischen PHP-Prozessen zu kommunizieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn