Heim  >  Artikel  >  PHP-Framework  >  Warum ist die Swoole-Coroutine Single-Threaded?

Warum ist die Swoole-Coroutine Single-Threaded?

WBOY
WBOYOriginal
2022-03-14 15:46:012535Durchsuche

Da die Coroutine-Umschaltung seriell ist, kann nur eine Coroutine gleichzeitig ausgeführt werden. Wenn eine Coroutine ausgeführt wird, funktionieren andere Coroutinen nicht mehr, sodass die Coroutine von Swoole auf einer einzelnen Coroutine basiert.

Warum ist die Swoole-Coroutine Single-Threaded?

Die Betriebsumgebung dieses Tutorials: Windows 10-System, Swoole 4-Version, DELL G3-Computer

Warum Swoole-Coroutine Single-Threaded ist?

Einfach ausgedrückt ist Coroutine eine Art und leichtere Implementierung, die von gehosteten Programmierern implementiert wird in Threads Anzahl gleichzeitiger Kollaborations-Lightweight-Threads

Mit zunehmender Anzahl von Programmierern wachsen die großen Namen weiterhin explosionsartig an. Natürlich denken einige Leute, dass Threads nicht einfach zu verwenden sind. Was sollen wir also tun? Es basiert auf dem Konzept von Threads. Implementieren Sie eine Reihe leichter Threads, die leichter sind und besser zum Betrügen von Sternen geeignet sind (tatsächlich können Coroutinen nicht vollständig als Threads betrachtet werden, da ein Thread mehrere Coroutinen haben kann)

Der Unterschied zwischen Coroutinen und Threads

Essence

Thread-Kernel-Status

Coroutine-Benutzerstatus

Planungsmethode

Zu den häufig verwendeten Planungsstrategien gehören Time-Sharing-Planung und präventive Planung. Um es ganz klar auszudrücken: Die Planung von Threads liegt völlig außerhalb Ihrer Kontrolle. Die Planungsmethode von Coroutinen ist die kollaborative Planung. Sie wird nicht vom Kernel gesteuert und durch die kostenlose Richtlinienplanung geändert. Wie oben erwähnt, befinden sich Coroutinen im Benutzermodus Modus, sodass die sogenannte kollaborative Planung direkt verwendet werden kann. Es versteht sich, dass es sich um eine von Programmierern geschriebene Planungsmethode handelt, das heißt, ich kann sie nach Belieben planen, ohne über den Systemkern geplant zu werden.

Einführung in das Verständnis der Swoole-Coroutine

Da wir planen, ein tiefgreifendes Verständnis der Swoole-Coroutine zu erlangen, müssen wir das Swoole-Coroutine-Modell kennen. Swooles Coroutine basiert auf einem einzelnen Thread. Es ist verständlich, dass das Umschalten von Coroutinen seriell erfolgt und nur eine Coroutine gleichzeitig ausgeführt wird.

Swooles Coroutine ist in der zugrunde liegenden Implementierung Single-Threaded, sodass nur eine Coroutine gleichzeitig ausgeführt wird seriell. Dies unterscheidet sich von Threads, die vom Betriebssystem für mehrere CPUs zur parallelen Ausführung geplant werden.

Während eine Coroutine ausgeführt wird, funktionieren andere Coroutinen nicht mehr. Die aktuelle Coroutine bleibt hängen, wenn blockierende E/A-Vorgänge ausgeführt werden, und der zugrunde liegende Scheduler tritt in die Ereignisschleife ein. Wenn ein E/A-Abschlussereignis vorliegt, nimmt der zugrunde liegende Scheduler die Ausführung der dem Ereignis entsprechenden Coroutine wieder auf.

Die Nutzung von CPU-Multi-Core basiert immer noch auf dem Multiprozessmechanismus der Swoole-Engine.

Empfohlenes Lernen:

Swoole-Tutorial

Das obige ist der detaillierte Inhalt vonWarum ist die Swoole-Coroutine Single-Threaded?. 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