Heim  >  Artikel  >  Backend-Entwicklung  >  Erfahren Sie mehr über die erweiterte Verwendung von PHP yield

Erfahren Sie mehr über die erweiterte Verwendung von PHP yield

coldplay.xixi
coldplay.xixinach vorne
2020-06-30 17:37:195229Durchsuche

Erfahren Sie mehr über die erweiterte Verwendung von PHP yield

Einleitung

Als ich zum ersten Mal mit PHPs yield in Kontakt kam, hatte ich das Gefühl, was für eine schwarze Technologie ist yield? Baidu :yield——Coroutine, Generator. In vielen Artikeln geht es um Iterator, Generater, verdammt ~, dieses Ding ist eine Ergänzung zu PHP-Iteratoren. Blättern Sie noch ein paar Seiten weiter und da ist es Go 协程. Ich habe aus Neugier auf Go 协程 geklickt und da waren Wörter wie 并发, 线程, 管道通讯 drin, wc, nb, das ist schwarze Technologie, komm zurück und lies PHP noch einmal, ich möchte Transfer Go jede Minute.

Verwandte Lernempfehlungen: PHP-Programmierung vom Anfänger bis zum Experten

Yield-Syntax zu PHP hinzugefügt

Die yield-Syntax wurde in Version 5.5 zu PHP hinzugefügt. Sie wird mit Iteratoren verwendet und ist funktionell mit dem 流程控制-Code identisch, ähnlich wie goto und return.

Das Folgende ist ein kleines Beispiel für die vom Beamten bereitgestellte Ausbeute. Anhand der Ausführungsergebnisse können wir analysieren, dass der Code, wenn er bis yield $i ausgeführt wird, zu return $i und nach , echo "$valuen" goto , richtig! Der Yield von PHP ist eine Syntax, die ein- und ausgehen kann. Im Z-Code, sieben rein und sieben raus, wird das for ($i = 1; $i d9cfcf0ee9d2b23696ed298d3f7af3bfloop()), d. h. Mehrkanalüberwachung: Anforderungsport, Anforderungsantwort-Port eines Drittanbieter-Clients. Wenn zu diesem Zeitpunkt:

  1. eine neue Anfrage hat, konkurriert es mit anderen worker um neue Anfragen. Wenn Konkurrenz auftritt, wird im Worker ein neuer Generator generiert.
  2. Wenn der Client antwortet, rufen Sie die Rückruffunktion auf.
  3. Wenn der Client antwortet, führen Sie das Generatorprogramm weiter aus.

Ausgehend von 1 können wir davon ausgehen, dass, wenn es nur einen Worker gibt, dieser Worker weiterhin die nächste Anfrage annehmen und verarbeiten kann, wenn die vorherige Anfrage nicht abgeschlossen ist. Das heißt, CoWorkerman kann unter einem einzigen Worker ausgeführt werden und mehrere Anfragen gleichzeitig bearbeiten.

Natürlich gibt es hier eine Voraussetzung: Blockierungsfunktionen können nicht im Einzelmodus ausgeführt werden. Sobald sie blockiert sind, werden nachfolgende Anforderungen auf der Netzwerkkarte blockiert. Wenn Sie also eine Bibliothek eines Drittanbieters verwenden, empfehle ich Ihnen dennoch, Worker im Multi-Worker-Modus auszuführen. Beim Blockieren gibt es andere CoWorkermans, die neu gehalten werden müssen Anfragen. Worker

Die Bedeutung von CoWorkerman

    Verwenden Sie synchronen Code, um asynchrone Anforderungen zu initiieren. Wechseln Sie von IO Serial Waiting in parallel, um furchtlose Wartezeiten zu verkürzen. Verbessern Sie die Effizienz von Geschäftsprogrammen, ohne die Lesbarkeit des Codes zu beeinträchtigen.
  1. Verarbeiten Sie mehrere Anfragen so weit wie möglich über die Ereignisschleife in einem Thread, was den häufigen Threadwechsel, der durch eine Anfrage und einen Thread verursacht wird, verringert und die Betriebseffizienz vom Kern aus verbessert.

CoWorkerman-Nische

eignet sich für Anwendungen, die reine

Anfragen verarbeiten, wie z.B. Socket, oder Workerman Gatewaydie mehrere Dienste integrieren大前端Das Ergebnis wird nach der Synthese an ein Szenario wie RPC zurückgegeben.前三页

Die Protokollierung ist die grundlegendste Anforderung jedes Programms. Da die Dateischreibfunktion blockiert, wird die Verwendung von Nachrichten empfohlen Warteschlange oder Redis-Warteschlange. Oder überspringen Sie

und werfen Sie LogstashElasticsearch

CoWorkerman hat seine Grenzen und seine eigene Position.

ZusammenfassungOkay~ Dies ist das Ende der PHP-Coroutine-Codierung zur Netzwerk-asynchronen Codierung. Wenn Sie nach dem Lesen dieses Artikels viele Zweifel haben, wenden Sie sich bitte an uns Hinterlassen Sie eine Nachricht, um Fragen zu stellen. Wenn

sich nicht gut an die Grammatik erinnert, können Sie die vorherigen Artikel dieser Serie lesen, um sie zu überprüfen.

yieldWenn ja, machen Sie es bitte dreimal.

Vielen Dank!

CoWorkerman

Das obige ist der detaillierte Inhalt vonErfahren Sie mehr über die erweiterte Verwendung von PHP yield. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:learnku.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen

In Verbindung stehende Artikel

Mehr sehen