亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

深入探究PHP的多進程編程方法

2024-05-04 22:35:11
字體:
來源:轉載
供稿:網友

子進程的創建
一般的子進程的寫法是:

<?php$pid = pcntl_fork();if($pid == -1){     //創建失敗     die('could not fork');}else{    if($pid){        //從這里開始寫的代碼是父進程的        exit("parent!");    }    else{        //子進程代碼,為防止不停的啟用子進程造成系統資源被耗盡的情況,一般子進程代碼運行完成后,加入exit來確保子進程正常退出。        exit("child");    }}?>

    上邊的代碼如果創建子進程成功的話,系統就有了2個進程,一個為父進程,一個為子進程,子進程的id號為$pid。在系統運行到$pid = pcntl_fork();時,在這個地方進行分支,父子進程各自開始運行各自的程序代碼。代碼的運行結果是parent 和child,很奇怪吧,為什么一個if和else互斥的代碼中,都輸出了結果?其實是像上邊所說的,代碼在pcntl_fork時,一個父進程運行parent,一個子進程運行了child。在代碼結果上就顯示了parent和child。至于誰先誰后的問題,這得要看系統資源的分配了。

    如果需要起多個進程來處理數據,可以根據數據的數量,按照約定好的數量比如說1000條一個進程來起子進程。使用for循環就可以了。   

 #如果獲得的總數小于或等于0,等待60秒,并退出  if ($count <= 0)   {    sleep(60);    exit;  }  #如果大于1000,計算需要起的進程數  if ($count > 1000)  {    $cycleSize = ceil($count/1000);  }  else  {    $cycleSize = 1;  }    for ($i=0; $i<$cycleSize; $i++)  {    $pid  = pcntl_fork();    if($pid == -1)    {      break;    }    else    {      if($pid)      {        #父進程獲得子進程的pid,存入數組        $pidArr[] = $pid;      }      else      {        //開始發送,子進程執行完自己的任務后,退出。          exit;      }    }  }    while(count($pidArr) > 0)  {    $myId  = pcntl_waitpid(-1, $status, WNOHANG);    foreach($pidArr as $key => $pid)    {      if($myId == $pid) unset($pidArr[$key]);    }  }

    然后使用crontab,來使此PHP程序每隔一段時間自動執行。

    當然,示例代碼比較簡單,具體還需要考慮怎么防止多個子進程執行到同一條數據或者當前進程處理數據未完成時,crontab又開始執行PHP文件啟用新的進程等等。


PHP多進程實現方式
下面來系統地整理一下PHP多進程的實現方式:

1. 直接方式

pcntl_fork() 創建一個進程,在父進程返回值是子進程的pid,在子進程返回值是0,-1表示創建進程失敗。跟C非常相似。

測試腳本 test.php
 

<?php  // example of multiple processes  date_default_timezone_set( 'Asia/Chongqing');  echo "parent start, pid ", getmypid(), "/n" ;  beep();  for ($i=0; $i<3; ++$i){     $pid = pcntl_fork();      if ($pid == -1){         die ("cannot fork" );     } else if ($pid > 0){         echo "parent continue /n";         for ($k=0; $k<2; ++$k){           beep();        }     } else if ($pid == 0){         echo "child start, pid ", getmypid(), "/n" ;         for ($j=0; $j<5; ++$j){           beep();        }         exit ;     }  }  // ***  function beep(){      echo getmypid(), "/t" , date( 'Y-m-d H:i:s', time()), "/n" ;     sleep(1);  }?>            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
琪琪第一精品导航| 亚洲品质视频自拍网| 国产日韩专区在线| 欧美性在线视频| 久久在线免费视频| 亚洲va国产va天堂va久久| 国产成人高潮免费观看精品| 国产福利精品视频| 成人av电影天堂| 97婷婷涩涩精品一区| 精品视频久久久久久久| 久久91亚洲人成电影网站| 九九久久久久久久久激情| 国产91精品高潮白浆喷水| 亚洲精品色婷婷福利天堂| 18性欧美xxxⅹ性满足| 欧美视频在线看| 国产成人免费91av在线| 亚洲精品久久久久中文字幕二区| 日本不卡视频在线播放| 日韩高清av一区二区三区| 亚洲欧美中文日韩v在线观看| 欧美日韩另类字幕中文| 久久伊人免费视频| 午夜精品一区二区三区视频免费看| 欧美在线亚洲一区| 国产区亚洲区欧美区| 欧美激情一区二区三区成人| 久久久久免费精品国产| 欧美寡妇偷汉性猛交| 久久69精品久久久久久国产越南| 国产精品久久久久久久天堂| 日本精品一区二区三区在线| 亚洲国产精品va在看黑人| 久久99热精品这里久久精品| 亚洲欧美国产日韩中文字幕| 色综合久久悠悠| 国产精品自在线| 精品亚洲一区二区| 亚洲色图综合久久| 日韩在线高清视频| 日韩欧美在线视频观看| 91在线视频精品| 欧美日韩国产中文精品字幕自在自线| 成人自拍性视频| 色偷偷av一区二区三区| 欧美日韩xxx| 日韩欧美国产视频| 97**国产露脸精品国产| 日韩精品在线视频观看| 亚洲国产高潮在线观看| 成人乱色短篇合集| 川上优av一区二区线观看| 91久久久国产精品| 美女精品视频一区| 欧美性猛交xxxx| 国产女人18毛片水18精品| 17婷婷久久www| 国产在线观看精品一区二区三区| 国产精品尤物福利片在线观看| 精品视频久久久| 久久久久久中文字幕| 日韩女在线观看| 亚洲第一精品夜夜躁人人爽| 97精品久久久中文字幕免费| 久久91精品国产| 亚洲欧美制服丝袜| 国产精品成人va在线观看| 最新69国产成人精品视频免费| 日韩av在线网站| 91精品国产成人| 国产91成人在在线播放| 久久亚洲春色中文字幕| 一本大道香蕉久在线播放29| 久久久久久久久久久国产| 中文字幕欧美专区| 久久国产精品久久久久| 在线视频一区二区| 亚洲全黄一级网站| 国产精品日韩在线一区| 欧美一区二区三区免费观看| 亚洲最大福利视频| 青青草国产精品一区二区| 中文字幕无线精品亚洲乱码一区| 欧美一级淫片播放口| 亚洲精品国产品国语在线| 欧美激情欧美激情| 国产欧美日韩综合精品| 国产精品jizz在线观看麻豆| 中文字幕精品av| 69av在线视频| 一道本无吗dⅴd在线播放一区| 欧美日韩国产在线| 久久亚洲精品国产亚洲老地址| 欧美性猛交视频| 97成人超碰免| 久久久精品久久久久| 亚洲japanese制服美女| 欧美成人亚洲成人日韩成人| 日韩在线视频导航| 97国产精品视频| 国产91在线播放九色快色| 久久久这里只有精品视频| 91大神在线播放精品| 欧美有码在线观看| 人妖精品videosex性欧美| 亚洲综合国产精品| 久久6免费高清热精品| 中文字幕精品视频| 欧美成人中文字幕在线| 亚洲激情中文字幕| 成人av在线亚洲| 日韩欧美国产高清91| 精品女厕一区二区三区| 日韩中文在线中文网在线观看| 中文字幕亚洲一区二区三区五十路| 国产99久久精品一区二区| 不卡av日日日| 亚洲在线观看视频| 色妞色视频一区二区三区四区| 欧美日韩激情视频8区| 国产精品高潮在线| 国产精品色午夜在线观看| 亚洲欧美激情在线视频| 国产欧美在线观看| 欧美在线一级va免费观看| 欧美自拍大量在线观看| 色婷婷综合成人| 日本一区二区在线播放| 亚洲社区在线观看| 亚洲精品免费网站| 欧美性猛交视频| 成人激情视频在线| 日韩亚洲精品视频| 国产精品ⅴa在线观看h| 日韩久久精品成人| 日本精品一区二区三区在线| 欧美精品在线观看91| 欧美一区二粉嫩精品国产一线天| 亚洲人成电影网| 日韩在线一区二区三区免费视频| 色婷婷综合久久久久| 国产成人精品一区二区| 国产精品电影网站| 国产精彩精品视频| 2019中文字幕全在线观看| 92福利视频午夜1000合集在线观看| 国产午夜精品视频免费不卡69堂| 国产成人精品日本亚洲专区61| 青青草99啪国产免费| 97视频在线看| 欧美日韩高清在线观看| 国产偷国产偷亚洲清高网站| 久久视频在线播放| 中文字幕欧美精品在线| 国产一区二区三区高清在线观看| 成人激情视频在线观看| 国产精品视频久久久| 亚洲图中文字幕| 欧美插天视频在线播放| 亚洲老板91色精品久久| 精品少妇v888av| 奇门遁甲1982国语版免费观看高清| 国产欧美一区二区三区久久人妖|