亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

PHP協(xié)程:并發(fā) shell_exec

xzavier / 791人閱讀

摘要:在程序中經(jīng)常需要用執(zhí)行一些命令,而普通的是阻塞的,如果命令執(zhí)行時間過長,那可能會導(dǎo)致進程完全卡住。在協(xié)程環(huán)境下可以用并發(fā)地執(zhí)行很多命令。提供的協(xié)程,是并發(fā)編程的利器。在工作中很多地方都可以使用協(xié)程,實現(xiàn)并發(fā)程序,大大提升程序性能。

在PHP程序中經(jīng)常需要用shell_exec執(zhí)行一些命令,而普通的shell_exec是阻塞的,如果命令執(zhí)行時間過長,那可能會導(dǎo)致進程完全卡住。
Swoole4協(xié)程環(huán)境下可以用Co::exec并發(fā)地執(zhí)行很多命令。

本文基于Swoole-4.2.9PHP-7.2.9版本
協(xié)程示例

返回值

Co::exec執(zhí)行完成后會恢復(fù)掛起的協(xié)程,并返回命令的輸出和退出的狀態(tài)碼。

var_dump(co::exec("sleep 5"));
協(xié)程結(jié)果
htf@htf-ThinkPad-T470p:~/workspace/debug$ time php t.php

real    0m5.089s
user    0m0.067s
sys    0m0.038s
htf@htf-ThinkPad-T470p:~/workspace/debug$

只用了 5秒,程序就跑完了。

下面換成 PHP 的 shell_exec 來試試。

阻塞代碼

使用nohup&轉(zhuǎn)為后臺執(zhí)行,無法得到命令執(zhí)行的結(jié)果和輸出,本文不對此進行深度探討
阻塞結(jié)果
htf@htf-ThinkPad-T470p:~/workspace/debug$ time php s.php 

real    0m50.119s
user    0m0.066s
sys    0m0.058s
htf@htf-ThinkPad-T470p:~/workspace/debug$ 

可以看到阻塞版本花費了50秒才完成。Swoole4提供的協(xié)程,是并發(fā)編程的利器。在工作中很多地方都可以使用協(xié)程,實現(xiàn)并發(fā)程序,大大提升程序性能。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/29710.html

相關(guān)文章

  • PHP 協(xié)程:Go + Chan + Defer

    摘要:為語言提供了強大的協(xié)程編程模式。提供的協(xié)程語法借鑒自,在此向開發(fā)組致敬協(xié)程可以與很好地互補。并發(fā)執(zhí)行使用創(chuàng)建協(xié)程,可以讓和兩個函數(shù)變成并發(fā)執(zhí)行。協(xié)程需要拿到請求的結(jié)果。 Swoole4為PHP語言提供了強大的CSP協(xié)程編程模式。底層提供了3個關(guān)鍵詞,可以方便地實現(xiàn)各類功能。 Swoole4提供的PHP協(xié)程語法借鑒自Golang,在此向GO開發(fā)組致敬 PHP+Swoole協(xié)程可以與...

    nidaye 評論0 收藏0
  • PHP下的異步嘗試二:初識協(xié)程

    摘要:如果僅依靠程序自動交出控制的話,那么一些惡意程序?qū)苋菀渍加萌繒r間而不與其他任務(wù)共享。多個操作可以在重疊的時間段內(nèi)進行。 PHP下的異步嘗試系列 如果你還不太了解PHP下的生成器,你可以根據(jù)下面目錄翻閱 PHP下的異步嘗試一:初識生成器 PHP下的異步嘗試二:初識協(xié)程 PHP下的異步嘗試三:協(xié)程的PHP版thunkify自動執(zhí)行器 PHP下的異步嘗試四:PHP版的Promise ...

    MudOnTire 評論0 收藏0
  • 聊聊 2018 年后端技術(shù)趨勢

    摘要:現(xiàn)在在后端業(yè)務(wù)開發(fā)編程方面,技術(shù)力量強的團隊已經(jīng)開始將技術(shù)棧從同步模式切換為異步了。使用這些技術(shù)方案是無法兼容已有程序的。影響了異步回調(diào)技術(shù)棧的普及。將會成為未來后端開發(fā)領(lǐng)域的主流技術(shù)方案。 今天太忙,少寫一點,后面再補充。 異步模式 Go 語言越來越熱門,很多大型互聯(lián)網(wǎng)公司后端正在轉(zhuǎn)向 GO 。Java 圈知名的服務(wù)化框架 Dubbo 也宣布轉(zhuǎn)型異步模式。這是一個大趨勢,異步模式已經(jīng)...

    Miyang 評論0 收藏0
  • PHP物聯(lián)網(wǎng)開發(fā)利器之Actor并發(fā)模型

    摘要:然而盡管如此,很多人可能都沒有思考過,如何優(yōu)雅的寫出自己的物聯(lián)網(wǎng)服務(wù)器。 PHP不適合做物聯(lián)網(wǎng)服務(wù)端嗎? 在傳統(tǒng)的思維中,經(jīng)常會有人告訴你,php不適合用來做物聯(lián)網(wǎng)服務(wù)端,讓你換java,node,go等其他語言,是的,沒錯傳統(tǒng)意義上的php,確實很難做物聯(lián)網(wǎng)服務(wù)器,因為它實在太蹩腳了,當然,這也不是意味著徹底就不能做。舉個例子,當你想實現(xiàn)一個TCP服務(wù)器的時候,你可能需要寫出原理大約...

    ixlei 評論0 收藏0
  • 仿照async/await風(fēng)格對Swoole4協(xié)程的簡單包裝

    摘要:官方文檔中對協(xié)程的示例大多按照一次請求一個協(xié)程或腳本并發(fā)大量協(xié)程的方式來舉例說明這種使用方式下提升的是整體的性能而非單次請求的響應(yīng)時間要提升單次請求的響應(yīng)效率或提升非網(wǎng)絡(luò)服務(wù)下腳本代碼的運行效率需要在業(yè)務(wù)代碼中主動使用協(xié)程來處理那些可并發(fā)的 Swoole官方文檔中對協(xié)程的示例大多按照一次請求一個協(xié)程(或腳本并發(fā)大量協(xié)程)的方式來舉例說明,這種使用方式下提升的是整體的性能,而非單次請求的...

    _ivan 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<