溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

PHP中Libevent 擴(kuò)展有什么用

發(fā)布時(shí)間:2021-10-19 10:22:59 來(lái)源:億速云 閱讀:164 作者:小新 欄目:web開(kāi)發(fā)

這篇文章主要為大家展示了“PHP中Libevent 擴(kuò)展有什么用”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“PHP中Libevent 擴(kuò)展有什么用”這篇文章吧。

1、 libevent介紹

libevent是一個(gè)事件觸發(fā)的網(wǎng)絡(luò)庫(kù),適用于windows、linux、freebsd等多種平臺(tái),內(nèi)部使用select、pollepoll、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本身不支持多線(xiàn)程,php不能很好實(shí)現(xiàn)并發(fā)機(jī)制。Pecl提供的pcntl(進(jìn)程控制)、libevent擴(kuò)展、socket包、stream系統(tǒng)函數(shù),可以使用php輕易地開(kāi)發(fā)出高性能,高并發(fā)的網(wǎng)絡(luò)應(yīng)用程序。

簡(jiǎn)單應(yīng)用事例:Pcntl fork n個(gè)workermaster process 得到請(qǐng)求后,處理信息發(fā)送給worker程序 、worker處理完后回傳給clientMaster 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)用??梢詮?span lang="en-us" xml:lang="en-us">libevent當(dāng)中找到http的標(biāo)準(zhǔn)寫(xiě)法,非阻塞的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)求的處理的三種類(lèi)型:

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;

 

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)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI