在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

當(dāng)前位置:雨林木風(fēng)下載站 > 網(wǎng)頁設(shè)計(jì)教程 > 詳細(xì)頁面

php如何處理進(jìn)程信號(hào)(附案例)

php如何處理進(jìn)程信號(hào)(附案例)

更新時(shí)間:2025-12-04 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

導(dǎo)網(wǎng)頁的本質(zhì)就是超級(jí)文本標(biāo)記語言,通過結(jié)合使用其他的Web技術(shù)(如:腳本語言、公共網(wǎng)關(guān)接口、組件等),可以創(chuàng)造出功能強(qiáng)大的網(wǎng)頁。因而,超級(jí)文本標(biāo)記語言是萬維網(wǎng)(Web)編程的基礎(chǔ),也就是說萬維網(wǎng)是建立...
網(wǎng)頁的本質(zhì)就是超級(jí)文本標(biāo)記語言,通過結(jié)合使用其他的Web技術(shù)(如:腳本語言、公共網(wǎng)關(guān)接口、組件等),可以創(chuàng)造出功能強(qiáng)大的網(wǎng)頁。因而,超級(jí)文本標(biāo)記語言是萬維網(wǎng)(Web)編程的基礎(chǔ),也就是說萬維網(wǎng)是建立在超文本基礎(chǔ)之上的。超級(jí)文本標(biāo)記語言之所以稱為超文本標(biāo)記語言,是因?yàn)槲谋局邪怂^“超級(jí)鏈接”點(diǎn)。
本篇文章給大家?guī)淼膬?nèi)容是關(guān)于php如何處理進(jìn)程信號(hào)(附實(shí)例),有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對你有所幫助。

php有一組進(jìn)程控制函數(shù)PCNTL,使得php能在*nix系統(tǒng)中實(shí)現(xiàn)跟c一樣的創(chuàng)建子進(jìn)程、使用exec函數(shù)執(zhí)行程序、處理信號(hào)等功能。

注意:pcntl這個(gè)擴(kuò)展僅在cli/cgi模式下可用。mod_php和php-fpm中不可以使用。在web server環(huán)境中不要使用這組函數(shù),因?yàn)闀?huì)導(dǎo)致不可預(yù)料的結(jié)果。另,windows作為非類unix系統(tǒng),沒有這些函數(shù)。

PCNTL 使用ticks來作為信號(hào)處理機(jī)制(signal handle callback mechanism),可以最小程度地降低處理異步事件時(shí)的負(fù)載。何謂ticks?Tick 是一個(gè)在代碼段中解釋器每執(zhí)行 N 條低級(jí)語句就會(huì)發(fā)生的事件,這個(gè)代碼段需要通過declare來指定。

下面是一個(gè)隔5秒發(fā)送一個(gè)SIGALRM信號(hào),并由signal_handler函數(shù)獲取,然后打印一個(gè)“Caught SIGALRM”的例子:

<?php   
        declare(ticks = 1);   
      
        function signal_handler($signal) {   
            print "Caught SIGALRM/n";   
            pcntl_alarm(5);   
        }   
      
        pcntl_signal(SIGALRM, "signal_handler", true);   
        pcntl_alarm(5);   
      
        while(true){

        }
      
    ?>

其實(shí)官方的pcntl_signal性能極差,主要是PHP的函數(shù)無法直接注冊到操作系統(tǒng)信號(hào)設(shè)置中,所以pcntl信號(hào)需要依賴tick機(jī)制來完成。 pcntl_signal的實(shí)現(xiàn)原理是,觸發(fā)信號(hào)后先將信號(hào)加入一個(gè)隊(duì)列中。然后在PHP的ticks回調(diào)函數(shù)中不斷檢查是否有信號(hào),如果有信號(hào)就執(zhí)行PHP中指定的回調(diào)函數(shù),如果沒有則跳出函數(shù)。 ticks=1表示每執(zhí)行1行PHP代碼就回調(diào)此函數(shù)。實(shí)際上大部分時(shí)間都沒有信號(hào)產(chǎn)生,但ticks的函數(shù)一直會(huì)執(zhí)行。 比較好的做法是去掉ticks,轉(zhuǎn)而使用pcntl_signal_dispatch,在代碼循環(huán)中自行處理信號(hào)。

pcntl_signal_dispatch的實(shí)現(xiàn)

<?php
// 定義一個(gè)處理器,接收到SIGINT信號(hào)后只輸出一行信息
function signalHandler($signo) {
    switch ($signo) {
        case SIGUSR1: echo "SIGUSR1\n"; break;
        case SIGUSR2: echo "SIGUSR2\n"; break;
        default:      echo "unknow";    break;
    }
}

//安裝信號(hào)觸發(fā)器器
pcntl_signal(SIGINT, 'signalHandler');
while (true) {
    sleep(1);
    posix_kill(posix_getpid(), SIGUSR1);///向當(dāng)前進(jìn)程發(fā)送SIGUSR1信號(hào)
    pcntl_signal_dispatch(); //接收到信號(hào)時(shí),調(diào)用注冊的signalHandler()
}

PCNTL的函數(shù):

信號(hào)處理

int pcntl_alarm ( int $seconds )

設(shè)置一個(gè)$seconds秒后發(fā)送SIGALRM信號(hào)的計(jì)數(shù)器

bool pcntl_signal(int $signo ,callback $handler [,bool $restart_syscalls=true])

為$signo設(shè)置一個(gè)處理該信號(hào)的回調(diào)函數(shù)

第一個(gè)參數(shù)是信號(hào)編號(hào) 第二個(gè)參數(shù)是信號(hào)發(fā)生時(shí)回調(diào)的PHP函數(shù)。 第三個(gè)參數(shù)是是否restart,是否重新注冊此信號(hào)。這個(gè)參數(shù)如果為false,那此信號(hào)只注冊處理一次。

注意:每次對 pcntl_alarm()的調(diào)用都會(huì)取消之前設(shè)置的alarm信號(hào)和sleep()函數(shù)。

下面是一個(gè)隔5秒發(fā)送一個(gè)SIGALRM信號(hào),并由signal_handler函數(shù)獲取,然后打印一個(gè)“Caught SIGALRM”的例子:

<?php   
        declare(ticks = 1);   
      
        function signal_handler($signal) {   
            print "Caught SIGALRM/n";   
            pcntl_alarm(5);   
        }   
      
        pcntl_signal(SIGALRM, "signal_handler", true);   
        pcntl_alarm(5);   
      
        for(;;) {   
        }   
      
    ?>

執(zhí)行程序

void pcntl_exec ( string $path [, array $args [, array $envs ]] )

在當(dāng)前的進(jìn)程空間中執(zhí)行指定程序,類似于c中的exec族函數(shù)。所謂當(dāng)前空間,即載入指定程序的代碼覆蓋掉當(dāng)前進(jìn)程的空間,執(zhí)行完該程序進(jìn)程即結(jié)束。

<?php   
    $dir = '/home/test/';   
    $cmd = 'ls';   
    $option = '-l';   
    $pathtobin = '/bin/ls';   
      
    $arg = array($cmd, $option, $dir);   
      
    pcntl_exec($pathtobin, $arg);   
    echo '123';    //不會(huì)執(zhí)行到該行   
    ?>

創(chuàng)建進(jìn)程

int pcntl_fork ( void ) 為當(dāng)前進(jìn)程創(chuàng)建一個(gè)子進(jìn)程
int pcntl_wait ( int &$status [, int $options ] ) 阻塞當(dāng)前進(jìn)程,只到當(dāng)前進(jìn)程的一個(gè)子進(jìn)程退出或者收到一個(gè)結(jié)束當(dāng)前進(jìn)程的信號(hào)。 
int pcntl_waitpid ( int $pid , int &$status [, int $options ] ) 功能同pcntl_wait,區(qū)別為waitpid為等待指定pid的子進(jìn)程。當(dāng)pid為-1時(shí)pcntl_waitpid與pcntl_wait一樣。

在 pcntl_wait和pcntl_waitpid兩個(gè)函數(shù)中的$status中存了子進(jìn)程的狀態(tài)信息,這個(gè)參數(shù)可以用于 pcntl_wifexited、pcntl_wifstopped、pcntl_wifsignaled、pcntl_wexitstatus、 pcntl_wtermsig、pcntl_wstopsig、pcntl_waitpid這些函數(shù)。

舉個(gè)例子

<?php   
    $pid = pcntl_fork();   
    if($pid) { 
        pcntl_wait($status);   
        $id = getmypid();   
        echo "parent process,pid {$id}, child pid {$pid}/n";   
    } else {   
        $id = getmypid();   
        echo "child process,pid {$id}/n";   
        sleep(2);   
    }   
    ?>

子進(jìn)程在輸出child process等字樣之后sleep了2秒才結(jié)束,而父進(jìn)程阻塞著直到子進(jìn)程退出之后才繼續(xù)運(yùn)行。

進(jìn)程優(yōu)先級(jí)

int pcntl_getpriority ([ int $pid [, int $process_identifier ]] ) 取得進(jìn)程的優(yōu)先級(jí),即nice值,默認(rèn)為0。不同的系統(tǒng)類型以及內(nèi)核版本下 優(yōu)先級(jí)可能不同(手冊中為-20到20)
bool pcntl_setpriority ( int $priority [, int $pid [, int $process_identifier ]] ) 設(shè)置進(jìn)程的優(yōu)先級(jí)

以上就是php如何處理進(jìn)程信號(hào)(附實(shí)例)的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!


網(wǎng)站建設(shè)是一個(gè)廣義的術(shù)語,涵蓋了許多不同的技能和學(xué)科中所使用的生產(chǎn)和維護(hù)的網(wǎng)站。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • 欧洲精品在线播放| 91小视频网站| 经典三级在线视频| 色一情一区二区三区| 欧美精品成人网| 亚洲爆乳无码专区| 欧美视频免费看欧美视频| 黄频视频在线观看| 99九九精品视频| 日本美女久久久| 日本xxxxx18| 男人的天堂avav| a级片一区二区| 成年人网站国产| 日本久久精品一区二区| 亚洲人成无码www久久久| 粉嫩虎白女毛片人体| www.色就是色.com| 香蕉视频xxxx| 欧美精品成人网| 国产视频在线观看网站| www.九色.com| 国产午夜福利视频在线观看| 日韩久久一级片| 99sesese| 国产爆乳无码一区二区麻豆| 99爱视频在线| 国产精品嫩草影院8vv8 | 一级淫片在线观看| 好色先生视频污| 在线观看免费av网址| 日本一级淫片演员| 免费在线a视频| 亚洲欧洲日本精品| 91动漫在线看| 天天色综合社区| 亚洲熟妇无码av在线播放| 日本www在线播放| 蜜桃福利午夜精品一区| 久久精品xxx| 小早川怜子一区二区三区| 九九热只有这里有精品| 亚洲欧美偷拍另类| 精品少妇人妻av免费久久洗澡| 午夜免费一级片| 精品中文字幕av| 国产不卡的av| 亚洲国产高清av| 国产精品宾馆在线精品酒店| 久久婷婷中文字幕| chinese少妇国语对白| 欧美久久久久久久久久久久久久| 亚洲天堂av一区二区| 国模无码视频一区二区三区| 国产大片一区二区三区| 在线观看av日韩| 国产中文字幕视频在线观看| 日本一本草久p| 一级做a爱视频| 天堂av在线网站| 日韩一级免费在线观看| 国产成人在线免费看| 成人免费看片'免费看| 日本免费在线视频观看| 国产免费又粗又猛又爽| 亚洲国产精品毛片av不卡在线| 久久精品免费网站| 欧美日韩一区二区在线免费观看| 成人免费观看毛片| 国产欧美在线一区| 国产成人黄色片| 一区二区传媒有限公司| 日本一本二本在线观看| 91猫先生在线| 亚州精品一二三区| caoporm在线视频| 一级黄色在线播放| 91嫩草国产丨精品入口麻豆| 一本色道久久88亚洲精品综合| 亚洲 欧美 日韩 国产综合 在线| 国产免费人做人爱午夜视频| 色悠悠久久综合网| 天堂av2020| 狠狠干视频网站| 成人一区二区免费视频| 91精品视频国产| 中文字幕在线中文| 另类小说色综合| 红桃视频 国产| 男人j进女人j| 国产乱子夫妻xx黑人xyx真爽| 中文字幕55页| 婷婷丁香激情网| www..com日韩| 丰满少妇在线观看| 18岁网站在线观看| 激情五月五月婷婷| a在线视频观看| 日本黄大片一区二区三区| 欧美少妇一级片| 中文字幕乱码人妻综合二区三区| 99er在线视频| 国产在线拍揄自揄拍无码| 欧美国产亚洲一区| 国产欧美自拍视频| 国产日韩一区二区在线| 毛片在线视频播放| 亚洲a级黄色片| the porn av| 日韩视频免费播放| 国产无遮挡猛进猛出免费软件| 国产精品少妇在线视频| 久久久久久久香蕉| 亚洲不卡视频在线| 久久精品免费一区二区| 男人c女人视频| 制服丝袜中文字幕第一页| 日韩精品视频久久| 国产男女免费视频| 男人c女人视频| 999热精品视频| 特大黑人娇小亚洲女mp4| av网站在线不卡| 凹凸国产熟女精品视频| av一区二区三区免费观看| 日本五级黄色片| 欧美一级黄色录像片| 亚洲免费av一区| 国产三级三级看三级| 国产精品igao| 亚洲熟妇av一区二区三区 | 超碰10000| 国产美女永久无遮挡| 亚洲理论电影在线观看| 亚洲女人在线观看| 国产日本欧美在线| 免费观看国产精品视频| www.av蜜桃| 久久久久久www| 精品国产av无码一区二区三区| 黄色a级片免费| 日韩欧美在线免费观看视频| 免费在线观看的毛片| 黑人粗进入欧美aaaaa| 亚洲老女人av| 欧美日韩视频免费在线观看| √天堂资源在线| 欧美一区二区视频在线播放| 农民人伦一区二区三区| 九色自拍视频在线观看| 男女私大尺度视频| 日韩精品一区二区三区色欲av| 色偷偷中文字幕| 无码人妻精品一区二区三区99v| 无码人妻丰满熟妇区毛片18| av免费中文字幕| 国产精品久久a| 一级黄色录像免费看| 黄色一级大片免费| 欧美精品久久久久久久久25p| 国产精品一色哟哟| 国产嫩草在线观看| 9l视频自拍9l视频自拍| 欧美老熟妇喷水| 黄色片免费网址| 日韩av在线播放不卡| 亚洲老女人av| 亚洲熟妇无码一区二区三区导航| 99日在线视频| 日本www.色| 久久综合久久网| 高清一区在线观看| 成人黄色大片网站| 久久久久久久久网| 欧美视频第一区| 国产成人一二三区| 视色视频在线观看| 日本中文字幕网址| 免费成人进口网站| 97超碰成人在线| 国产三级三级看三级| www.日本在线播放| 男女爱爱视频网站| 成人午夜免费在线视频| 日韩av手机版| 国产精品动漫网站| 黄色影院一级片| 台湾无码一区二区| 经典三级在线视频| 911av视频| 中文字幕成人免费视频| 热久久精品免费视频| 亚洲国产精品久久久久婷蜜芽| 超碰97人人射妻| 久久久性生活视频| 男女激情无遮挡| 日韩精品在线中文字幕| 男女日批视频在线观看| 无码人妻丰满熟妇区五十路百度| 美女黄色片视频|