libevent是事件觸發的網路函式庫,適用於windows、linux、freebsd等多種平台,內部使用select、poll、epoll、kqueue等系統呼叫管理事件機制。下面就和小編一起了解下如何安裝Libevent擴充功能。
1、 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
2、 為什麼要學libevent
##http server可以說是libevent的經典應用。可以從libevent當中找到http的標準寫法,非阻塞的http server也就是socket處理與http協定處理纏繞。
學習libevent有助於提升程式設計功力,除了網路程式設計方面外,Libevent的程式碼裡有很多有用的設計技巧和基礎資料結構,例如資訊隱藏、函數指標、c語言的多態性支撐、鍊錶和堆等等,都有助於提升自身的程序功力[1]。
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如何安裝Libevent擴充功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!