摘要:在禁止場景中使用協程會出現各種莫名其妙的問題發生。限制了協程的應用范圍。新版本基于匯編代碼實現了全新的協程內核。實現了對所有語法的支持。穩定性和健壯性均已達到工業級的水準。完全可用于大型項目的生產環境中。
Swoole雖然在2016年就支持了協程特性,但由于底層是基于setjmp/longjmp實現的stackless方案。因此在某些場景下,如call_user_func、array_map、__destruct中無法使用協程。大型應用程序中邏輯非常復雜,多人協作的團隊中,開發者很容易踩到坑。在禁止場景中使用協程API會出現各種莫名其妙的問題發生。限制了協程的應用范圍。
新版本4.0基于boost.context 1.60匯編代碼實現了全新的協程內核。在保存PHP函數調用棧的基礎上,增加了C棧的上下文存儲。實現了對所有PHP語法的支持。現在在任意PHP的函數,包括call_user_func、反射、魔術方法、array_map中均可使用協程。
現在可以在PHP代碼中任意位置使用協程,開發者不再需要擔心使用場景問題。4.0版本我們與SwooleDistributed/Swoft/EasySwoole等框架作者進行了緊密合作,在大量項目中進行了灰度試用。穩定性和健壯性均已達到工業級的水準。完全可用于大型項目的生產環境中。
go(function() { array_map("test", array("func start ")); echo "co end "; }); function test($p) { echo $p; co::sleep(1); echo "func end "; }
4.0分支使用了C++11標準,建議使用gcc-4.8或更高版本。全局變量隔離
新版本中底層對全局變量進行了隔離,現在可以使用SwooleProcess創建多個SwooleServer實例了。
for ($i = 0; $i < 2; $i++) { $p = new swoole_process(function () use ($i) { $port = 9501 + $i; $http = new swoole_http_server("127.0.0.1", $port); $http->on("start", function ($server) use ($port) { echo "Swoole http server is started at http://127.0.0.1:{$port} "; }); $http->on("request", function ($request, $response) { $response->header("Content-Type", "text/plain"); $response->end("Hello World "); }); $http->start(); }, false, false); $p->start(); }其他更新
修復http2服務器無法向Chrome瀏覽器客戶端發送超過16K數據的問題
修復BASE模式下Task進程無法重啟的問題
增加Channel->peek方法,用于窺視數據
修復Server->pause/resume在SWOOLE_PROCESS下無法使用的問題
移除Linux AIO,現在無論如何設置都使用線程池實現異步文件IO
支持MySQL存儲過程
下載 4.0GITHUB:https://github.com/swoole/swo...
開源中國:https://gitee.com/swoole/swoo...
PECL:https://pecl.php.net/package/...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/28821.html
摘要:搶占式調度我們在今年年初就計劃實現的搶占式調度,以滿足實現有些場景下的不均衡調度帶來的問題。考慮開線程,負責檢查當前執行協程執行時間。達到我們的第二個協程主動搶占第一個協程的效果。 前言 Swoole內核團隊開設的專欄,會逐漸投入精力寫文章介紹Swoole的開發歷程,實現原理,應用實踐等,大家可以更好的交流,共同學習,建設PHP生態。 協程調度 去年Swoole推出了4.0版本后,完整...
摘要:事件驅動的異步編程模式異步協議的服務器端客戶端支持支持隧道加密支持并發百萬長連接支持毫秒定時器支持異步同步協程支持親和性設置守護進程版本目前上穩定版本是,最新消息,要邁入,徹底協程化。 Swoole:面向生產環境的 PHP 異步網絡通信引擎 官網原話:使 PHP 開發人員可以編寫高性能的異步并發 TCP、UDP、Unix Socket、HTTP,WebSocket 服務。Swoole ...
閱讀 2814·2021-11-18 10:02
閱讀 3673·2021-11-15 17:59
閱讀 2306·2021-09-06 15:00
閱讀 3344·2019-08-29 16:58
閱讀 1056·2019-08-26 10:34
閱讀 1581·2019-08-26 10:15
閱讀 1286·2019-08-26 10:11
閱讀 2713·2019-08-23 18:33