您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關swoole是不是異步的的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
swoole是PHP的異步、并行、高性能網絡通信引擎,使用純C語言編寫,提供了PHP語言的異步多線程服務器,異步TCP/UDP網絡客戶端,異步MySQL,異步Redis,數據庫連接池,AsyncTask,消息隊列,毫秒定時器,異步文件讀寫,異步DNS查詢。
Swoole內置了Http/WebSocket服務器端/客戶端、Http2.0服務器端。
Swoole可以廣泛應用于互聯網、移動通信、企業軟件、網絡游戲、物聯網、車聯網、智能家庭等領域。 使用PHP+Swoole作為網絡通信框架,可以使企業IT研發團隊的效率大大提升,更加專注于開發創新產品。
Swoole底層內置了異步非阻塞、多線程的網絡IO服務器。PHP程序員僅需處理事件回調即可,無需關心底層。
與Nginx/Tornado/Node.js等全異步的框架不同,Swoole既支持全異步,也支持同步。
什么情況下使用同步,什么情況下使用異步。這里說明一下。
我們不贊成用異步回調的方式去做功能開發,傳統的PHP同步方式實現功能和邏輯是最簡單的,也是最佳的方案。像node.js這樣到處callback,只是犧牲可維護性和開發效率。
但有些時候很適合用異步,比如FTP、聊天服務器,smtp,代理服務器等等此類以通信和讀寫磁盤為主,功能和業務邏輯其次的服務器程序。
“PHP的擴展函數API全是同步的”,這個說法并不正確,實際上同步阻塞的地方主要是網絡調用,文件讀寫。
例如mysql_query需要與mysql數據庫服務器通信,curl需要調用網絡,file_get_contents需要讀寫文件,以及其他fopen/fwrite/fread/fgets/fputs這些都是阻塞的API。除此之外PHP的array/string/mbstring等函數是非阻塞的。
swoole提供了異步的socket客戶端,異步的mysql,而且1.6.12還提供了異步文件讀寫和異步DNS查詢的功能。另外還提供了task/finish的API,完全可以解決阻塞IO問題。
感謝各位的閱讀!關于“swoole是不是異步的”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。