ホームページ  >  記事  >  PHPフレームワーク  >  Swoole が高同時実行をどのように処理するか

Swoole が高同時実行をどのように処理するか

(*-*)浩
(*-*)浩オリジナル
2019-12-07 13:32:032931ブラウズ

Swoole が高同時実行をどのように処理するか

## Swoole ハイとマージに対処する方法

##① Reactor モデルの紹介 (推奨学習: ## SWOOLEビデオ チュートリアル )IO 多重化非同期ノンブロッキング プログラムは、古典的な Reactor モデルを使用します。Reactor は、その名前が示すとおり、リアクターを意味します。それ自体はデータの送受信を処理しません。ソケット (パイプ、eventfd、シグナルの場合もある) ハンドルのイベント変更のみを監視できます。

Reactor は単なるイベント ジェネレーターであり、接続/受け入れ、送信/受信、クローズなどのソケット ハンドルに対する実際の操作はコールバック内で完了します。

②Swoole のアーキテクチャ

swoole はマルチスレッド Reactor とマルチプロセス Worker を使用します。

リクエストが到着すると、swoole は次のように処理します:

请求到达 Main Reactor
        |
        |
Main Reactor根据Reactor的情况,将请求注册给对应的Reactor
(每个Reactor都有epoll。用来监听客户端的变化)
        |
        |
客户端有变化时,交给worker来处理
        |
        |
worker处理完毕,通过进程间通信(比如管道、共享内存、消息队列)发给对应的reactor。
        |
        |
reactor将响应结果发给相应的连接
        |
        |
    请求处理完成

リアクターは epoll に基づいているため、各リアクターは無数の接続リクエストを処理できます。 。このようにして、swoole は高い同時実行性を簡単に処理できます。

以上がSwoole が高同時実行をどのように処理するかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。