Heim  >  Artikel  >  PHP-Framework  >  Welches Problem hat Swoole gelöst?

Welches Problem hat Swoole gelöst?

(*-*)浩
(*-*)浩Original
2019-12-12 13:56:083159Durchsuche

Welches Problem hat Swoole gelöst?

Die bestehenden Anwendungsmethoden von PHP basieren alle auf http, was für Situationen, die schnelle Echtzeitreaktionen erfordern, relativ schwach ist, zum Beispiel bei Online-Spielen oder Push-Diensten im Allgemeinen Sie müssen eine langfristige Kommunikation mit Benutzern aufrechterhalten, um Echtzeitantworten und Push-Informationen zu erhalten.

swoole ist darauf ausgelegt, solche Anwendungsszenarien zu lösen. (Empfohlenes Lernen: SWOOLE-Video-Tutorial )

Die Implementierung von SWOOLE

Swoole ist in reinem C geschrieben und verlässt sich nicht auf andere Bibliotheken von Drittanbietern.

swoole verwendet kein Libevent, daher besteht keine Notwendigkeit, Libevent zu installieren

Swoole verlässt sich nicht auf PHPs Stream/Sockets/pcntl/posix/sysvmsg und andere Erweiterungen

socket Ein Teil von

swoole verwendet den zugrunde liegenden Socket-Systemaufruf.

IO-Ereignisschleife

Die Ereignisschleife des Hauptprozesses verwendet Select/Poll, da es im Hauptthread nur wenige Dateideskriptoren gibt. Verwenden Sie einfach Select/ poll

Verwenden Sie epoll/kqueue im Reaktor-Thread/Worker-Prozess

Der Task-Prozess verfügt über keine Ereignisschleife und der Prozess läuft zyklisch und blockiert die Lesepipe

Viele Leute verwenden strace -p, um Swoole anzuzeigen. Der Hauptprozess kann nur den Poll-Systemaufruf sehen. Die richtige Art, es anzuzeigen, ist strace -f -p

Multiprozess/Multithread

Multiprozess-Systemaufruf fork() verwenden

Multi-Thread verwendet pthread-Thread-Bibliothek

EventFd

Swoole verwendet eventfd als Mechanismus für Thread-/Interprozess-Nachrichtenbenachrichtigungen.

Timerfd

Swoole verwendet timerfd, um Timer zu implementieren

SIgnalfd

signalfd wird in swoole To verwendet erreichen signal abschirmung und verarbeitung. Dadurch kann das Problem, dass Threads/Prozesse durch Signale unterbrochen werden und das System einen Neustart aufruft, effektiv vermieden werden. Der Reaktor-Thread empfängt im Hauptprozess keine Signale.

Das obige ist der detaillierte Inhalt vonWelches Problem hat Swoole gelöst?. 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