最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Php多進程實現(xiàn)代碼

 更新時間:2018年05月07日 10:22:32   作者:e421083458  
這篇文章主要介紹了Php多進程實現(xiàn)編程實例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

php多進程實現(xiàn)

PHP有一組進程控制函數(shù)(編譯時需要–enable-pcntl與posix擴展),使得php能在nginx系統(tǒng)中實現(xiàn)跟c一樣的創(chuàng)建子進程、使用exec函數(shù)執(zhí)行程序、處理信號等功能。

CentOS 6 下yum安裝php的,默認是不安裝pcntl的,因此需要單獨編譯安裝,首先下載對應版本的php,解壓后

cd php-version/ext/pcntl 
phpize 
./configure && make && make install 
cp /usr/lib/php/modules/pcntl.so /usr/lib64/php/modules/pcntl.so 
echo "extension=pcntl.so" >> /etc/php.ini 
/etc/init.d/httpd restart 

方便極了。

下面是示例代碼:

<?php 
header('content-type:text/html;charset=utf-8' ); 
 
// 必須加載擴展 
if (!function_exists("pcntl_fork")) { 
 die("pcntl extention is must !"); 
} 
//總進程的數(shù)量 
$totals = 3; 
// 執(zhí)行的腳本數(shù)量 
$cmdArr = array(); 
// 執(zhí)行的腳本數(shù)量的數(shù)組 
for ($i = 0; $i < $totals; $i++) { 
 $cmdArr[] = array("path" => __DIR__ . "/run.php", 'pid' =>$i ,'total' =>$totals); 
} 
 /* 
展開:$cmdArr 
Array 
( 
 [0] => Array 
 ( 
  [path] => /var/www/html/company/pcntl/run.php 
  [pid] => 0 
  [total] => 3 
 ) 
 [1] => Array 
 ( 
  [path] => /var/www/html/company/pcntl/run.php 
  [pid] => 1 
  [total] => 3 
 ) 
 [2] => Array 
 ( 
  [path] => /var/www/html/company/pcntl/run.php 
  [pid] => 2 
  [total] => 3 
 ) 
) 
*/ 
 
pcntl_signal(SIGCHLD, SIG_IGN); //如果父進程不關心子進程什么時候結束,子進程結束后,內核會回收。 
foreach ($cmdArr as $cmd) { 
 $pid = pcntl_fork(); //創(chuàng)建子進程 
 //父進程和子進程都會執(zhí)行下面代碼 
 if ($pid == -1) { 
 //錯誤處理:創(chuàng)建子進程失敗時返回-1. 
 die('could not fork'); 
 } else if ($pid) { 
 //父進程會得到子進程號,所以這里是父進程執(zhí)行的邏輯 
 //如果不需要阻塞進程,而又想得到子進程的退出狀態(tài),則可以注釋掉pcntl_wait($status)語句,或寫成: 
 pcntl_wait($status,WNOHANG); //等待子進程中斷,防止子進程成為僵尸進程。 
 } else { 
 //子進程得到的$pid為0, 所以這里是子進程執(zhí)行的邏輯。 
 $path = $cmd["path"]; 
 $pid = $cmd['pid'] ; 
 $total = $cmd['total'] ; 
 echo exec("/usr/bin/php {$path} {$pid} {$total}")."\n"; 
 exit(0) ; 
 } 
} 
?> 

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關文章

  • Python中defaultdict與lambda表達式用法實例小結

    Python中defaultdict與lambda表達式用法實例小結

    這篇文章主要介紹了Python中defaultdict與lambda表達式用法,結合實例形式分析了Python中defaultdict與lambda表達式的功能、使用方法及相關注意事項,需要的朋友可以參考下
    2018-04-04
  • Python 中Django驗證碼功能的實現(xiàn)代碼

    Python 中Django驗證碼功能的實現(xiàn)代碼

    驗證碼是一種區(qū)分用戶是計算機還是人的公共全自動程序,很多用戶登錄和注冊系統(tǒng)都提供了圖形驗證碼功能。這篇文章主要介紹了Python 中Django驗證碼功能的實現(xiàn)代碼,需要的朋友可以參考下
    2019-06-06
  • PyTorch 編寫代碼遇到的問題及解決方案

    PyTorch 編寫代碼遇到的問題及解決方案

    這篇文章主要介紹了PyTorch 編寫代碼遇到的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。
    2021-06-06
  • python中wheel的用法整理

    python中wheel的用法整理

    在本篇文章里小編給大家整理的是關于python中wheel的用法整理內容,需要的朋友們可以跟著學習下。
    2020-06-06
  • python標記語句塊使用方法總結

    python標記語句塊使用方法總結

    在本篇文章里小編給大家整理了關于python標記語句塊使用方法以及相關知識點,需要的朋友們參考下。
    2019-08-08
  • Python如何獲取多線程返回結果

    Python如何獲取多線程返回結果

    這篇文章主要介紹了Python如何獲取多線程返回結果,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Python使用QQ郵箱發(fā)送Email的方法實例

    Python使用QQ郵箱發(fā)送Email的方法實例

    實際開發(fā)過程中使用到郵箱的概率很高,那么如何借助python使用qq郵箱發(fā)送郵件呢?正好最近工作遇到這個需求,所以想著把方法分享出來方便大家,所以這篇文章主要介紹了Python使用QQ郵箱發(fā)送Email的實現(xiàn)方法,需要的朋友可以參考。
    2017-02-02
  • Anaconda中導出環(huán)境的實現(xiàn)步驟

    Anaconda中導出環(huán)境的實現(xiàn)步驟

    在 Anaconda 中導出環(huán)境是一種常用的做法,可以將當前的環(huán)境配置導出到一個文件中,本文主要介紹了Anaconda中導出環(huán)境的實現(xiàn)步驟,具有一定的參考價值
    2024-05-05
  • python實現(xiàn)每天自動簽到領積分的示例代碼

    python實現(xiàn)每天自動簽到領積分的示例代碼

    這篇文章主要介紹了python實現(xiàn)每天自動簽到領積分的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • python實現(xiàn)二分查找算法

    python實現(xiàn)二分查找算法

    這篇文章主要介紹了python如何實現(xiàn)二分查找算法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下。
    2020-09-09

最新評論

仙居县| 江口县| 许昌县| 来凤县| 平阴县| 凤台县| 蒙阴县| 保靖县| 丹阳市| 米泉市| 南丹县| 龙泉市| 佛坪县| 宾阳县| 武宣县| 霍林郭勒市| 临高县| 赤峰市| 芦山县| 包头市| 龙川县| 伊金霍洛旗| 乌鲁木齐市| 田东县| 潞城市| 南阳市| 斗六市| 淮安市| 年辖:市辖区| 漯河市| 陇西县| 克什克腾旗| 班戈县| 沛县| 云浮市| 沙田区| 保德县| 石城县| 邛崃市| 潞城市| 西峡县|