摘要:在禁止場景中使用協(xié)程會出現(xiàn)各種莫名其妙的問題發(fā)生。限制了協(xié)程的應用范圍。新版本基于匯編代碼實現(xiàn)了全新的協(xié)程內(nèi)核。實現(xiàn)了對所有語法的支持。穩(wěn)定性和健壯性均已達到工業(yè)級的水準。完全可用于大型項目的生產(chǎn)環(huán)境中。
Swoole雖然在2016年就支持了協(xié)程特性,但由于底層是基于setjmp/longjmp實現(xiàn)的stackless方案。因此在某些場景下,如call_user_func、array_map、__destruct中無法使用協(xié)程。大型應用程序中邏輯非常復雜,多人協(xié)作的團隊中,開發(fā)者很容易踩到坑。在禁止場景中使用協(xié)程API會出現(xiàn)各種莫名其妙的問題發(fā)生。限制了協(xié)程的應用范圍。
新版本4.0基于boost.context 1.60匯編代碼實現(xiàn)了全新的協(xié)程內(nèi)核。在保存PHP函數(shù)調(diào)用棧的基礎上,增加了C棧的上下文存儲。實現(xiàn)了對所有PHP語法的支持?,F(xiàn)在在任意PHP的函數(shù),包括call_user_func、反射、魔術方法、array_map中均可使用協(xié)程。
現(xiàn)在可以在PHP代碼中任意位置使用協(xié)程,開發(fā)者不再需要擔心使用場景問題。4.0版本我們與SwooleDistributed/Swoft/EasySwoole等框架作者進行了緊密合作,在大量項目中進行了灰度試用。穩(wěn)定性和健壯性均已達到工業(yè)級的水準。完全可用于大型項目的生產(chǎn)環(huán)境中。
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或更高版本。全局變量隔離
新版本中底層對全局變量進行了隔離,現(xiàn)在可以使用SwooleProcess創(chuàng)建多個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瀏覽器客戶端發(fā)送超過16K數(shù)據(jù)的問題
修復BASE模式下Task進程無法重啟的問題
增加Channel->peek方法,用于窺視數(shù)據(jù)
修復Server->pause/resume在SWOOLE_PROCESS下無法使用的問題
移除Linux AIO,現(xiàn)在無論如何設置都使用線程池實現(xiàn)異步文件IO
支持MySQL存儲過程
下載 4.0GITHUB:https://github.com/swoole/swo...
開源中國:https://gitee.com/swoole/swoo...
PECL:https://pecl.php.net/package/...
文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/28821.html
摘要:搶占式調(diào)度我們在今年年初就計劃實現(xiàn)的搶占式調(diào)度,以滿足實現(xiàn)有些場景下的不均衡調(diào)度帶來的問題。考慮開線程,負責檢查當前執(zhí)行協(xié)程執(zhí)行時間。達到我們的第二個協(xié)程主動搶占第一個協(xié)程的效果。 前言 Swoole內(nèi)核團隊開設的專欄,會逐漸投入精力寫文章介紹Swoole的開發(fā)歷程,實現(xiàn)原理,應用實踐等,大家可以更好的交流,共同學習,建設PHP生態(tài)。 協(xié)程調(diào)度 去年Swoole推出了4.0版本后,完整...
摘要:事件驅(qū)動的異步編程模式異步協(xié)議的服務器端客戶端支持支持隧道加密支持并發(fā)百萬長連接支持毫秒定時器支持異步同步協(xié)程支持親和性設置守護進程版本目前上穩(wěn)定版本是,最新消息,要邁入,徹底協(xié)程化。 Swoole:面向生產(chǎn)環(huán)境的 PHP 異步網(wǎng)絡通信引擎 官網(wǎng)原話:使 PHP 開發(fā)人員可以編寫高性能的異步并發(fā) TCP、UDP、Unix Socket、HTTP,WebSocket 服務。Swoole ...
閱讀 2902·2021-11-18 10:02
閱讀 3773·2021-11-15 17:59
閱讀 2375·2021-09-06 15:00
閱讀 3411·2019-08-29 16:58
閱讀 1131·2019-08-26 10:34
閱讀 1656·2019-08-26 10:15
閱讀 1363·2019-08-26 10:11
閱讀 2793·2019-08-23 18:33