libevent は、Windows、Linux、freebsd、その他のプラットフォームに適したイベント トリガー ネットワーク ライブラリであり、内部で select、pol、epoll、kqueue などのシステム コールやその他のシステム コールを使用してイベント メカニズムを管理します。エディターを使用して、Libevent 拡張機能をインストールする方法を学びましょう。
1. libevent の概要
libevent は、Windows、Linux、freebsd、その他のプラットフォームに適したイベントトリガー型のネットワーク ライブラリです。 poll、epoll、kqueue などのシステム コールは、イベント メカニズムを管理します。 Libevent はクロスプラットフォームであり、並外れたパフォーマンスを発揮します。これは、nodejs と同様にイベント駆動型です。公式 Web サイト: http://libevent.org/
最新の安定バージョン
https://github.com/downloads/libevent/libevent/libevent - 2.0.16-stable.tar.gz
メイン モジュール:
イベント処理フレームワーク
イベント エンジン モジュール
バッファ管理モジュール
信号処理モジュール
php 自体はマルチスレッドをサポートしておらず、php は同時実行メカニズムをうまく実装できません。 Pecl が提供する pcntl (プロセス制御)、libevent 拡張機能、ソケット パッケージ、ストリーム システム機能により、PHP を使用して高性能、高同時実行性のネットワーク アプリケーションを簡単に開発できます。
簡単なアプリケーション例: Pcntl fork n ワーカー。マスタープロセスがリクエストを取得すると、処理情報がワーカープログラムに送信され、ワーカーは処理後にそれをクライアントに送り返します。マスタープロセスは同時実行量に応じてワーカーの数、つまりnのサイズを設定し、ワーカーのデータを監視し、不足した場合に追加のプロセスを開始できます。 nginxの原理と同じです。
添付ファイル: Php ネットワーク プログラミング フレームワーク
http://code.google.com/p/swoole/downloads/list
2. libevent を学ぶ必要がある理由
http サーバーは libevent の古典的なアプリケーションと言えます。 http の標準的な書き方は libevent にありますが、ノンブロッキング http サーバーはソケット処理と http プロトコル処理を組み合わせたものです。
libevent を学習すると、プログラミング スキルの向上に役立ちます。ネットワーク プログラミングに加えて、Libevent のコードには、情報の隠蔽、関数ポインタ、C 言語のポリモーフィズムなど、多くの便利な設計テクニックと基本的なデータ構造が含まれています。リスト、ヒープなどはすべて、プログラミング スキルの向上に役立ちます [1]。
3 種類のリクエスト処理:
新しいプロセスをフォークする接続入力
接続入力 pthread_create
接続入力はイベントベースの配列をスローします;メインプロセスはノンブロッキングなことを行います;
3. Php libevent 拡張モジュールのインストール
Curl –O https://github.com/downloads/libevent/libevent/libevent-2.0.16-stable.tar.gz
Tar –zxvf libevent-2.0.16-stable.tar.gz Cd libevent-2.0.16-stable /usr/local/php/bin/phpize ./configure make make install vi /usr/local/php/etc/php.ini extension_dir=””; extension=libevent.so php –m | grep lib
インストール成功
推奨学習:php ビデオ チュートリアル
以上がPHP 用の Libevent 拡張機能をインストールする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。