<div class="codebody" id="code64190"> <?PHP $message_queuekey = ftok(FILE,0666); $pids = array(); for ($i = 0; $i < 5; $i++) { //创建子进程 $pids[$i] = pcntlfork(); if ($pids[$i]) { echo "No.$i child process was created,the pid is $pids[$i]\r\n"; } elseif ($pids[$i] == 0) { $pid = posix_getpid(); echo "process.$pid is writing Now\r\n"; msg_send($message_queue,"this is process.$pid's data\r\n"); posix_kill($pid,SIGTERM); } } do { msg_receive($message_queue,MSGIPCNowAIT); echo $message; //需要判断队列是否为空,如果为空就退出 //break; } while(true) ?>
运行结果为: <div class="codetitle"><a style="CURSOR: pointer" data="45627" class="copybut" id="copybut45627" onclick="doCopy('code45627')">代码如下:<div class="codebody" id="code45627"> No.0 child process was created,the pid is 5249 No.1 child process was created,the pid is 5250 No.2 child process was created,the pid is 5251 No.3 child process was created,the pid is 5252 No.4 child process was created,the pid is 5253 process.5251 is writing Now this is process.5251's data process.5253 is writing Now process.5252 is writing Now process.5250 is writing Now this is process.5253's data this is process.5252's data this is process.5250's data process.5249 is writing Now this is process.5249's data