首頁 > php框架 > Swoole > 主體

swoole解決了什麼問題

(*-*)浩
發布: 2019-12-12 13:56:08
原創
3024 人瀏覽過

swoole解決了什麼問題

php現有的應用方式都是基於http的,對於需要快速即時回應的情況比較乏力,例如網路遊戲或推送服務一般都需要與使用者長期保持一個tcp連接以便即時回應和推送訊息。

swoole就是解決這樣套用場景的。                                           中使用中使用「建議學習: swoole視訊教學

Swoole的實作問題wo#dwo#b#d 。

swoole並沒有用libevent,所以不需要安裝libevent

swoole不依賴php的stream/sockets/pcntl/posix/sysvmsg等擴充

#socket部分

swoole使用底層的socket系統呼叫。

IO事件循環

主進程的事件循環使用select/poll,因為主執行緒中的檔案描述符只有幾個,使用select/poll即可

reactor線程/worker進程中使用epoll/kqueue

task進程沒有事件循環,進程會循環阻塞讀取管道

有很多人使用strace -p去查看swoole主進程只能看到poll系統呼叫。正確的檢視方法是strace -f -p

多行程/多執行緒

多行程使用fork()系統呼叫

多執行緒使用pthread執行緒​​庫

EventFd

Swoole中使用了eventfd作為執行緒/進程間訊息通知的機制。

Timerfd

Swoole使用timerfd來實作定時器

SIgnalfd

swoole中使用了signalfd來實現對訊號的屏蔽和處理。可以有效避免執行緒/程序被訊號打斷,系統呼叫restart的問題。在主行程中reactor執行緒不會接受任何訊號。

以上是swoole解決了什麼問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!