中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP中多進程的實現方法

發布時間:2021-06-07 17:30:17 來源:億速云 閱讀:135 作者:Leah 欄目:開發技術

本篇文章給大家分享的是有關PHP中多進程的實現方法,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

PHP創建多進程需要使用到pcntl模塊 在編譯時加上--enable-pcntl打開進程控制支持,不是Unix類系統不支持此模塊

php官網介紹http://php.net/manual/zh/book.pcntl.php,創建子進程需要使用到pcntl_fork(),文檔上介紹該函數說 ,pcntl_fork — 在當前進程當前位置產生分支(子進程)。

譯注:fork是創建了一個子進程,父進程和子進程 都從fork的位置開始向下繼續執行,不同的是父進程執行過程中,得到的fork返回值為子進程號,而子進程得到的是0。失敗時,在 父進程上下文返回-1,不會創建子進程,并且會引發一個PHP錯誤。

<?php
  $pid = pcntl_fork();
  var_dumP($pid);
?>

運行上面面代碼,會返回兩個值,一個是0和子進程的PID;

<?php
  $i=0;
  while($i!=5){
     $pid = pcntl_fork();
     echo "進程ID:".$pid."==".$i++.PHP_EOL;
  }   
?>

運行上面程序發現進程數指數增長 剛好是2^5=32個;原因是每一條都執行了while循環,到最后成了進程的指數增長——也就是說fork的時候把while循環也帶了進去,父進程在執行fork的過程中;會得到子進程的進程號

而子進程會的得到是0;意味著0就是子進程標志;改正后代碼是這樣的

<?php
  $i=0;
  while($i!=5){
    $pid = pcntl_fork();
    echo "進程ID:".$pid."==".$i++.PHP_EOL;
    if ($pid == 0) {
      //code
      exit(0);
    }
  }
?>

以上就是PHP中多進程的實現方法,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

蒲城县| 茌平县| 聊城市| 北流市| 即墨市| 侯马市| 黎平县| 闸北区| 四川省| 分宜县| 禄丰县| 枣强县| 南陵县| 炎陵县| 宝兴县| 阿克| 五家渠市| 彰武县| 温州市| 卫辉市| 汶上县| 枞阳县| 大厂| 科技| 西畴县| 那坡县| 泰州市| 同江市| 靖边县| 浏阳市| 盐山县| 香格里拉县| 鄢陵县| 东城区| 黄冈市| 太原市| 蓝山县| 竹北市| 明光市| 营山县| 斗六市|