首頁  >  文章  >  php框架  >  swoole是php的擴充嗎

swoole是php的擴充嗎

(*-*)浩
(*-*)浩原創
2019-12-09 09:55:132473瀏覽

swoole是php的擴充嗎

Swoole使用C語言編寫,以PHP擴充的方式來運作。 Swoole的網路IO部分基於epoll/kqueue事件循環,是全異步非阻塞的。業務邏輯部分使用多進程同步阻塞方式來運作。

這樣既保證了Server能夠應付高並發和大量TCP連線。又保證業務程式碼仍然可以簡單的編寫。 (推薦學習: swoole影片教學

Swoole對比Node.js的優點

1、swoole是原生支援多行程/多執行緒的

開發者只需要修改一個參數,設定下要啟動多少個行程即可。而Node.js的網路庫本身並沒有提供多進程/多執行緒的實作。開發者需要自行建立進程。或者乾脆使用單線程。這樣無法充分利用多核心。

2、swoole使用訊息傳遞 多Worker進程,而不是多執行緒 共享記憶體 加鎖,共享記憶體的效能雖然很好,但有安全性問題,需要讀寫時加鎖。鎖的粒度過大會導致只有一個線程在運行。鎖太複雜又會有死鎖問題。所以開發者需要非常謹慎小心。

3、swoole的程式碼編寫是同步,而不是巢狀非同步回呼

Node.js的程式碼如果太複雜,會巢狀多層回調,使程式碼喪失可讀性,程式流程變得很亂。 Swoole使用了傳統Linux下半同步半非同步多Worker的實作方式。業務代碼按照同步方式編寫,更簡單。

Swoole也內建了Socket客戶端的實現,但採用的是同步 並行方式來執行。 PHP本身也提供了socket的功能,但某幾個函數有些bug,而且比較複雜。 Swoole內建的用戶端類別更安全簡化。

4、swoole內建了Node.js所沒有的額外特性

#如CPU

##Affinity設置,守護程式化,混合UDP/TCP多埠監聽,多重定時器等。

以上是swoole是php的擴充嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn