小編給大家分享一下PHP怎么安裝Libevent擴(kuò)展,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、成都微信小程序、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了賓川免費(fèi)建站歡迎大家使用!
libevent是一個(gè)事件觸發(fā)的網(wǎng)絡(luò)庫(kù),適用于windows、linux、freebsd等多種平臺(tái),內(nèi)部使用select、poll、epoll、kqueue等系統(tǒng)調(diào)用管理事件機(jī)制。下面就和小編譯器了解下如何安裝Libevent擴(kuò)展。
1、 libevent介紹
libevent是一個(gè)事件觸發(fā)的網(wǎng)絡(luò)庫(kù),適用于windows、linux、freebsd等多種平臺(tái),內(nèi)部使用select、poll、epoll、kqueue等系統(tǒng)調(diào)用管理事件機(jī)制。Libevent是跨平臺(tái)的,而且具有非凡的性能。與nodejs一樣是事件驅(qū)動(dòng)的;官方網(wǎng)站:http://libevent.org/
最新的穩(wěn)定版本
https://github.com/downloads/libevent/libevent/libevent-2.0.16-stable.tar.gz
主要模塊:
事件處理框架
事件引擎模塊
Buffer管理模塊
信號(hào)處理模塊
php本身不支持多線程,php不能很好實(shí)現(xiàn)并發(fā)機(jī)制。Pecl提供的pcntl(進(jìn)程控制)、libevent擴(kuò)展、socket包、stream系統(tǒng)函數(shù),可以使用php輕易地開發(fā)出高性能,高并發(fā)的網(wǎng)絡(luò)應(yīng)用程序。
簡(jiǎn)單應(yīng)用事例:Pcntl fork n個(gè)worker。master process 得到請(qǐng)求后,處理信息發(fā)送給worker程序 、worker處理完后回傳給client。Master process 可以跟據(jù)并發(fā)量,來(lái)設(shè)定worker的數(shù)量,即n的大小,并monitor(監(jiān)控)worker的數(shù)據(jù),在不足時(shí)啟動(dòng)更多的進(jìn)程。同nginx原理。
附:Php網(wǎng)絡(luò)編程框架
http://code.google.com/p/swoole/downloads/list
2、 為什么要學(xué)習(xí)libevent
http server可以說(shuō)是libevent的經(jīng)典應(yīng)用??梢詮膌ibevent當(dāng)中找到http的標(biāo)準(zhǔn)寫法,非阻塞的http server也就是socket處理與http協(xié)議處理纏繞。
學(xué)習(xí)libevent有助于提升程序設(shè)計(jì)功力,除了網(wǎng)絡(luò)程序設(shè)計(jì)方面外,Libevent的代碼里有很多有用的設(shè)計(jì)技巧和基礎(chǔ)數(shù)據(jù)結(jié)構(gòu),比如信息隱藏、函數(shù)指針、c語(yǔ)言的多態(tài)支持、鏈表和堆等等,都有助于提升自身的程序功力[1]。
對(duì)請(qǐng)求的處理的三種類型:
connection input fork a new process
connection input pthread_create
connection input throw a Event-based array; main process do nonblocking things;
3、 Php libevent 擴(kuò)展模塊安裝
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擴(kuò)展”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!