Swoole中如何理解進(jìn)程和事件IO

本篇文章為大家展示了Swoole中如何理解進(jìn)程和事件IO,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

10多年專注成都網(wǎng)站制作,企業(yè)網(wǎng)站設(shè)計(jì),個(gè)人網(wǎng)站制作服務(wù),為大家分享網(wǎng)站制作知識(shí)、方案,網(wǎng)站設(shè)計(jì)流程、步驟,成功服務(wù)上千家企業(yè)。為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù),專注于企業(yè)網(wǎng)站設(shè)計(jì),高端網(wǎng)頁(yè)制作,對(duì)成都汽車(chē)玻璃修復(fù)等多個(gè)方面,擁有多年的網(wǎng)站維護(hù)經(jīng)驗(yàn)。

1.文件鎖
子進(jìn)程回復(fù)制父進(jìn)程的IO句柄,但是不能讓所有的子進(jìn)程同時(shí)對(duì)同一個(gè)文件進(jìn)行操作,所以需要文件鎖。

2.進(jìn)程間的通訊方式--管道
管道是一組(2個(gè))特殊的描述符
管道需要在fork函數(shù)調(diào)用前創(chuàng)建
如果某一段主動(dòng)關(guān)閉管道,另一端讀取操作會(huì)直接返回0,之后會(huì)關(guān)閉管道
Swoole中如何理解進(jìn)程和事件IO

在父進(jìn)程中創(chuàng)建管道的時(shí)候,父進(jìn)程會(huì)創(chuàng)建一組描述符;子進(jìn)程在進(jìn)行復(fù)制父進(jìn)程時(shí),會(huì)復(fù)制這一組描述符。

3.進(jìn)程間的通訊方式--消息隊(duì)列
使用消息隊(duì)列比流式管道的好處是,假如某一端服務(wù)掛了,但是因?yàn)橄⑦€在隊(duì)列中,所以數(shù)據(jù)不會(huì)丟失
消息隊(duì)列的通訊方式很像共享內(nèi)存
Swoole中如何理解進(jìn)程和事件IO

可以通過(guò)指定key創(chuàng)建一個(gè)消息隊(duì)列
在消息隊(duì)列中傳遞的數(shù)據(jù)大小有限制 默認(rèn)65535k
消息隊(duì)列會(huì)一直保留到被主動(dòng)關(guān)閉

4.IO多路復(fù)用
epoll會(huì)監(jiān)聽(tīng)注冊(cè)再在自己名下所有的socket描述符
當(dāng)有socket感興趣的時(shí)間發(fā)生時(shí),epoll函數(shù)才會(huì)響應(yīng),并返回有時(shí)間發(fā)生的socket集合
epoll的本事是阻塞IO,優(yōu)點(diǎn)是能夠處理大量的socket集合
Swoole中如何理解進(jìn)程和事件IO

5.Event Loop簡(jiǎn)介
Event loop是一個(gè)Reactor線程,其中運(yùn)行了一個(gè)epoll實(shí)例
可通過(guò)接口添加到socket描述符的epoll監(jiān)聽(tīng)中,并制定時(shí)間響應(yīng)的回調(diào)函數(shù)
因?yàn)镋vent loop是單獨(dú)線程,不能用于fpm的環(huán)境下。因?yàn)閒pm是新起的進(jìn)程,事件完畢后有可能被關(guān)閉,此時(shí)scoket便不能被監(jiān)聽(tīng)了。
開(kāi)啟Event loop后,程序會(huì)啟動(dòng)一個(gè)線程并一直阻塞在epoll的監(jiān)聽(tīng)上,開(kāi)啟了Event loop后,程序會(huì)一直運(yùn)行不停止,這也是swoole開(kāi)發(fā)者的本意。終止的方法是調(diào)用swoole_event_exit函數(shù)。

6.swoole進(jìn)程
swoole process包含三個(gè)部分:管道,內(nèi)存和IO句柄
swoole process有以下的幾個(gè)優(yōu)點(diǎn):
是基于C語(yǔ)言封裝的管理模塊,方便PHP多進(jìn)程編程;
內(nèi)置管道、消息隊(duì)列接口,方便實(shí)現(xiàn)進(jìn)程間的通信;
提供自定義信號(hào)管理

上述內(nèi)容就是Swoole中如何理解進(jìn)程和事件IO,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

本文題目:Swoole中如何理解進(jìn)程和事件IO
文章網(wǎng)址:http://bm7419.com/article14/jcihge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、Google、品牌網(wǎng)站建設(shè)、網(wǎng)站維護(hù)ChatGPT、品牌網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)