91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Swoole中如何理解進程和事件IO

發布時間:2021-10-09 09:27:43 來源:億速云 閱讀:139 作者:柒染 欄目:web開發

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

1.文件鎖
子進程回復制父進程的IO句柄,但是不能讓所有的子進程同時對同一個文件進行操作,所以需要文件鎖。

2.進程間的通訊方式--管道
管道是一組(2個)特殊的描述符
管道需要在fork函數調用前創建
如果某一段主動關閉管道,另一端讀取操作會直接返回0,之后會關閉管道
Swoole中如何理解進程和事件IO

在父進程中創建管道的時候,父進程會創建一組描述符;子進程在進行復制父進程時,會復制這一組描述符。

3.進程間的通訊方式--消息隊列
使用消息隊列比流式管道的好處是,假如某一端服務掛了,但是因為消息還在隊列中,所以數據不會丟失
消息隊列的通訊方式很像共享內存
Swoole中如何理解進程和事件IO

可以通過指定key創建一個消息隊列
在消息隊列中傳遞的數據大小有限制 默認65535k
消息隊列會一直保留到被主動關閉

4.IO多路復用
epoll會監聽注冊再在自己名下所有的socket描述符
當有socket感興趣的時間發生時,epoll函數才會響應,并返回有時間發生的socket集合
epoll的本事是阻塞IO,優點是能夠處理大量的socket集合
Swoole中如何理解進程和事件IO

5.Event Loop簡介
Event loop是一個Reactor線程,其中運行了一個epoll實例
可通過接口添加到socket描述符的epoll監聽中,并制定時間響應的回調函數
因為Event loop是單獨線程,不能用于fpm的環境下。因為fpm是新起的進程,事件完畢后有可能被關閉,此時scoket便不能被監聽了。
開啟Event loop后,程序會啟動一個線程并一直阻塞在epoll的監聽上,開啟了Event loop后,程序會一直運行不停止,這也是swoole開發者的本意。終止的方法是調用swoole_event_exit函數。

6.swoole進程
swoole process包含三個部分:管道,內存和IO句柄
swoole process有以下的幾個優點:
是基于C語言封裝的管理模塊,方便PHP多進程編程;
內置管道、消息隊列接口,方便實現進程間的通信;
提供自定義信號管理

上述內容就是Swoole中如何理解進程和事件IO,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

江都市| 确山县| 铜川市| 裕民县| 祥云县| 开原市| 阿尔山市| 襄汾县| 英山县| 沙湾县| 凤城市| 章丘市| 汉川市| 瓮安县| 临夏县| 博野县| 建平县| 呼和浩特市| 门头沟区| 克山县| 长白| 航空| 桐梓县| 大埔县| 清丰县| 徐州市| 大理市| 衡阳县| 中超| 丰顺县| 乌拉特后旗| 和顺县| 丰原市| 舞钢市| 娱乐| 大丰市| 永德县| 衡水市| 安徽省| 绵竹市| 延安市|