亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

华蓥市| 邓州市| 昌平区| 日喀则市| 泾川县| 东乡族自治县| 宁南县| 邓州市| 德化县| 柘城县| 汾西县| 临湘市| 武乡县| 金乡县| 五台县| 龙川县| 中卫市| 高雄县| 潜山县| 广东省| 益阳市| 咸阳市| 施秉县| 石泉县| 福贡县| 皮山县| 高雄市| 府谷县| 邵阳市| 荆州市| 瓦房店市| 宜章县| 方山县| 天柱县| 花垣县| 平潭县| 辽中县| 万源市| 汤原县| 阿图什市| 资溪县|