您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“PHP中Libevent 擴展有什么用”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“PHP中Libevent 擴展有什么用”這篇文章吧。
libevent是一個事件觸發的網絡庫,適用于windows、linux、freebsd等多種平臺,內部使用select、poll、epoll、kqueue等系統調用管理事件機制。Libevent是跨平臺的,而且具有非凡的性能。與nodejs一樣是事件驅動的;官方網站:http://libevent.org/
最新的穩定版本
https://github.com/downloads/libevent/libevent/libevent-2.0.16-stable.tar.gz
主要模塊:
事件處理框架
事件引擎模塊
Buffer管理模塊
信號處理模塊
php本身不支持多線程,php不能很好實現并發機制。Pecl提供的pcntl(進程控制)、libevent擴展、socket包、stream系統函數,可以使用php輕易地開發出高性能,高并發的網絡應用程序。
簡單應用事例:Pcntl fork n個worker。master process 得到請求后,處理信息發送給worker程序 、worker處理完后回傳給client。Master process 可以跟據并發量,來設定worker的數量,即n的大小,并monitor(監控)worker的數據,在不足時啟動更多的進程。同nginx原理。
附:Php網絡編程框架
http://code.google.com/p/swoole/downloads/list
http server可以說是libevent的經典應用。可以從libevent當中找到http的標準寫法,非阻塞的http server也就是socket處理與http協議處理纏繞。
學習libevent有助于提升程序設計功力,除了網絡程序設計方面外,Libevent的代碼里有很多有用的設計技巧和基礎數據結構,比如信息隱藏、函數指針、c語言的多態支持、鏈表和堆等等,都有助于提升自身的程序功力[1]。
對請求的處理的三種類型:
1、 connection input fork a new process
2、 connection input pthread_create
3、 connection input throw a Event-based array; main process do nonblocking things;
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中Libevent 擴展有什么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。