swoole是什麼?官網的原話介紹是這樣的:php
Swoole 使用純 C 語言編寫,提供了 PHP 語言的異步多線程服務器,異步 TCP/UDP 網絡客戶端,異步 MySQL,異步Redis,數據庫鏈接池,AsyncTask,消息隊列,毫秒定時器,異步文件讀寫,異步DNS查詢。Swoole內置了Http/WebSocket服務器端/客戶端、Http2.0服務器端。除了異步 IO 的支持以外,Swoole 爲 PHP多進程的模式設計了多個併發數據結構和IPC通訊機制,能夠大大簡化多進程併發編程的工做。其中包括了併發原子計數器,併發HashTable,Channel,Lock,進程間通訊IPC等豐富的功能特性。數據庫
Swoole2.0 支持了相似 Go 語言的協程,可使用徹底同步的代碼實現異步程序。PHP代碼無需額外增長任何關鍵詞,底層自動進行協程調度,實現異步。編程
swoole能夠說從新定義了php,爲php社區注入了新的活力,打破了php開發的侷限性,如Unix系統編程、網絡通訊編程、異步io等。隨着swoole的持續發展和壯大,目前已經出現了不少基於Swoole開發的常駐內存型的API和Web應用服務框架,如Easyswoole、Swoft、SwooleDistributed、Swoolefy 等。segmentfault
筆者對於Easyswoole和Swoft有着濃厚的興趣,目前會選擇Easyswoole框架進行學習,固然,若是你對Swoft有興趣,建議閱讀官方文檔 或者 Swoft源碼解析。服務器
EasySwoole 官方說明:swoole
EasySwoole 是一款基於Swoole Server 開發的常駐內存型的分佈式PHP框架,專爲API而生,擺脫傳統PHP運行模式在進程喚起和文件加載上帶來的性能損失。EasySwoole 高度封裝了 Swoole Server 而依舊維持 Swoole Server 原有特性,支持同時混合監聽HTTP、自定義TCP、UDP協議,讓開發者以最低的學習成本和精力編寫出多進程,可異步,高可用的應用服務。
EasySwoole 有着比較完善的文檔和使用實例,框架做者也很活躍,時常在交流羣中爲大夥答疑(嗯,估計快被咱們這些路人弄瘋了)。EasySwoole 易用穩定,本次想經過對Easyswoole的學習和我的解析,吸取框架的思想和設計知識,增強本身對swoole的認知和理解。固然,筆者能力水平有限,後續的文章若有錯誤,還請指出和諒解。網絡
後續文章假定讀者水平爲中級PHPer,有着Yii,Laravel,Phalcon等至少一個流行框架完整的使用體驗,能理解常見Web框架使用到的概念,對swoole拓展有必定的認知和了解。數據結構
目錄以下(後續添加文章都會記錄在此):多線程
......併發