PHP實(shí)現(xiàn)多進(jìn)程并行操作的詳解(可做守護(hù)進(jìn)程)
更新時(shí)間:2013年06月18日 10:04:06 作者:
本篇文章是對(duì)PHP實(shí)現(xiàn)多進(jìn)程并行操作進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
如下所示:
/**
* 入口函數(shù)
* 將此文件保存為 ProcessOpera.php
* 在terminal中運(yùn)行 /usr/local/php/bin/php ProcessOpera.php &
* 查看進(jìn)程 ps aux|grep php
*/
ProcessOpera("runCode", array(), 8);
/**
* run Code
*/
function runCode($opt = array()) {
//需要在守護(hù)進(jìn)程中運(yùn)行的代碼
}
/**
* $func為子進(jìn)程執(zhí)行具體事物的函數(shù)名稱
* $opt為$func的參數(shù) 數(shù)組形式
* $pNum 為fork的子進(jìn)程數(shù)量
*/
function ProcessOpera($func, $opts = array(), $pNum = 1) {
while(true) {
$pid = pcntl_fork();
if($pid == -1) {
exit("pid fork error");
}
if($pid) {
static $execute = 0;
$execute++;
if($execute >= $pNum) {
pcntl_wait($status);
$execute--;
}
} else {
while(true) {
//somecode
$func($opts);
sleep(1);
}
exit(0);
}
}
}
復(fù)制代碼 代碼如下:
/**
* 入口函數(shù)
* 將此文件保存為 ProcessOpera.php
* 在terminal中運(yùn)行 /usr/local/php/bin/php ProcessOpera.php &
* 查看進(jìn)程 ps aux|grep php
*/
ProcessOpera("runCode", array(), 8);
/**
* run Code
*/
function runCode($opt = array()) {
//需要在守護(hù)進(jìn)程中運(yùn)行的代碼
}
/**
* $func為子進(jìn)程執(zhí)行具體事物的函數(shù)名稱
* $opt為$func的參數(shù) 數(shù)組形式
* $pNum 為fork的子進(jìn)程數(shù)量
*/
function ProcessOpera($func, $opts = array(), $pNum = 1) {
while(true) {
$pid = pcntl_fork();
if($pid == -1) {
exit("pid fork error");
}
if($pid) {
static $execute = 0;
$execute++;
if($execute >= $pNum) {
pcntl_wait($status);
$execute--;
}
} else {
while(true) {
//somecode
$func($opts);
sleep(1);
}
exit(0);
}
}
}
您可能感興趣的文章:
- PHP擴(kuò)展程序?qū)崿F(xiàn)守護(hù)進(jìn)程
- PHP將進(jìn)程作為守護(hù)進(jìn)程的方法
- PHP守護(hù)進(jìn)程實(shí)例
- PHP高級(jí)編程實(shí)例:編寫守護(hù)進(jìn)程
- shell腳本作為保證PHP腳本不掛掉的守護(hù)進(jìn)程實(shí)例分享
- PHP程序級(jí)守護(hù)進(jìn)程的實(shí)現(xiàn)與優(yōu)化的使用概述
- php守護(hù)進(jìn)程 加linux命令nohup實(shí)現(xiàn)任務(wù)每秒執(zhí)行一次
- 詳解PHP解決守護(hù)進(jìn)程Redis假死
相關(guān)文章
PHP 面向?qū)ο蟾倪M(jìn)后的一點(diǎn)說明
學(xué)習(xí)php 面向?qū)ο蟮呐笥眩枰私獾臇|西。2008-10-10一個(gè)PHP二維數(shù)組排序的函數(shù)分享
二維數(shù)組在PHP開發(fā)中經(jīng)常遇到,但是他的排序就不如一維數(shù)組那樣用內(nèi)置函數(shù)來的方便了,下面為大家詳細(xì)介紹下2014-01-01php對(duì)數(shù)組內(nèi)元素進(jìn)行隨機(jī)調(diào)換的方法
這篇文章主要介紹了php對(duì)數(shù)組內(nèi)元素進(jìn)行隨機(jī)調(diào)換的方法,通過自定義函數(shù)實(shí)現(xiàn)對(duì)數(shù)組內(nèi)元素進(jìn)行隨機(jī)調(diào)換的功能,涉及php操作數(shù)組的相關(guān)技巧,需要的朋友可以參考下2015-05-05