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