麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > PHP > 正文

多進程應用幫助PHP解決難題

2020-03-24 17:50:49
字體:
供稿:網(wǎng)友
PHP在很多時候不適合做常駐的SHELl進程, 他沒有專門的gc例程, 也沒有有效的內(nèi)存管理途徑. 所以如果用PHP做常駐SHELL, 你會經(jīng)常被內(nèi)存耗盡導致abort而unhappy.
而且, 如果輸入數(shù)據(jù)非法, 而腳本沒有檢測, 導致abort, 也會讓你很不開心.那? 怎么辦呢?呵呵, 別著急, 多進程來幫您! 那,這是為什么呢?優(yōu)點:1. 使用多進程, 子進程結(jié)束以后, 內(nèi)核會負責回收資源2. 使用多進程,子進程異常退出不會導致整個進程Thread退出. 父進程還有機會重建流程.3. 一個常駐主進程, 只負責任務分發(fā), 邏輯更清楚.
Then, 怎么做呢? 接下來, 我們使用PHP提供的POSIX和Pcntl系列函數(shù), 來實現(xiàn)一個PHP命令解析器, 主進程負責接受用戶輸入, 然后fork子進程執(zhí)行, 并負責回顯子進程的結(jié)束狀態(tài).
代碼如下, 我加了注釋, 如果有不懂的地方, 可以翻閱手冊相關(guān)函數(shù), 或者回復留言.#!/bin/env php
?php
/** A example denoted muti-process application in php
* @filename fork.php
* @touch date Wed 10 Jun 2009 10:25:51 PM CST
* @author Laruence [email protected]
* @license http://www.zend.com/license/3_0.txt PHP License 3.0
* @version 1.0.0
*/
/** 確保這個函數(shù)只能運行在SHELL中 */
if
(substr(php_sapi_name(), 0, 3) !== 'cli')
{
die( This Programe can only be run in CLI mode
}
/** 關(guān)閉最大執(zhí)行事件限制, 在CLI模式下, 這個語句其實不必要 */
set_time_limit(0);$pid = posix_getpid(); //取得主進程ID
$user = posix_getlogin(); //取得用戶名
echo
EOD
USAGE: [command | expression]
input php code to execute by fork a new process
input quit to exit Shell Executor version 1.0.0 by laruence
EOD;
while
(true)
{
$prompt = /n{$user}$
$input = readline($prompt); readline_add_history($input);
if
($input == 'quit')
{
break;
}
process_execute($input . ';');
}
exit(0);function
process_execute($input)
{
$pid = pcntl_fork(); //創(chuàng)建子進程
if
($pid == 0)
{//子進程
$pid = posix_getpid();
echo
* Process {$pid} was created, and Executed:/n/n
eval($input); //解析命令
exit;
}
else
{//主進程
$pid = pcntl_wait($status, WUNTRACED); //取得子進程結(jié)束狀態(tài)
if
(pcntl_wifexited($status))
{
echo
/n/n* Sub process: {$return['pid']} exited with {$status}
}
}
}html教程

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产精品成人av片免费看最爱 | 日韩黄色在线播放 | 在线播放免费人成毛片乱码 | 夜夜b | 少妇的肉体的满足毛片 | 黄色伊人网站 | 国产精品久久久久久久av | 亚洲无马在线观看 | 4p一女两男做爰在线观看 | 史上最强炼体老祖动漫在线观看 | 一级空姐毛片 | 12av毛片| 国产精品一区二区羞羞答答 | 国产精品片一区二区三区 | h网站在线观看 | 91久久国产露脸精品国产护士 | 国产一区二精品区在线 | 国产91精品亚洲精品日韩已满 | 亚洲国产精品一区二区三区 | 成人在线视频播放 | 99精品视频在线看 | 国产一及毛片 | 久久狠狠高潮亚洲精品 | 在线看免费观看日本 | 国产一区二区午夜 | 久久久久久久久久一本门道91 | hd性videos意大利复古 | 黄wwww | 最新精品在线 | 黄在线 | 国产成人精品视频在线 | 久久精热 | 成年免费观看视频 | 国产羞羞视频在线观看免费应用 | 欧美视频一区二区三区 | 黄色片小说 | julieann艳星激情办公室 | 欧美精品一区二区久久 | 精品国产91久久久久久久妲己 | 黑人三级毛片 | 国产精品久久久久久238 |