합계가 2일 때 상위 프로세스가 중단되지 않는 이유는 무엇입니까?
$sum = 0;
<code> while(true){ $sum++; $pid= pcntl_fork(); switch($pid){ case "-1": echo"couldn't fork"; break; case "0":{ var_dump(getmypid()); var_dump(pcntl_wifexited($status), pcntl_wifstopped($status), pcntl_wifsignaled($status), pcntl_wexitstatus($status), pcntl_wtermsig($status)); echo 'ppppppppp'; </code>
<code> exit(0); } default: { if($sum == 2){ // $subPid = pcntl_waitpid(-1, $status, SI_ASYNCIO); $subPid = pcntl_wait($status); echo '挂起'."\n"; } var_dump('主'.getmypid()); var_dump($subPid); echo "I'm child" . getmypid() . "\n"; echo 'ccp'; //就会执行子进程 sleep(30); echo "\n\n\n"; } // exit(0); } var_dump(getmypid()); echo 'iiiiiii'; if($sum == 2) break; } 这个是答案 string(8) "主26003"</code>
NULL
나는 child26003
ccpint(26004)
bool(true)
bool(false)
bool(false)
int(0)
int (0)
pppppppp
int(26003)
iiiiiii 정지
string(8) "main 26003"
int(26004)
I'm child26003
ccpint(26005)
bool( true )
부울(거짓)
부울(거짓)
int(0)
int(0)
pppppppp
int(26003)
iiiiii
합계가 2일 때 상위 프로세스가 중단되지 않는 이유는 무엇입니까?
$sum = 0;
<code> while(true){ $sum++; $pid= pcntl_fork(); switch($pid){ case "-1": echo"couldn't fork"; break; case "0":{ var_dump(getmypid()); var_dump(pcntl_wifexited($status), pcntl_wifstopped($status), pcntl_wifsignaled($status), pcntl_wexitstatus($status), pcntl_wtermsig($status)); echo 'ppppppppp'; </code>
<code> exit(0); } default: { if($sum == 2){ // $subPid = pcntl_waitpid(-1, $status, SI_ASYNCIO); $subPid = pcntl_wait($status); echo '挂起'."\n"; } var_dump('主'.getmypid()); var_dump($subPid); echo "I'm child" . getmypid() . "\n"; echo 'ccp'; //就会执行子进程 sleep(30); echo "\n\n\n"; } // exit(0); } var_dump(getmypid()); echo 'iiiiiii'; if($sum == 2) break; } 这个是答案 string(8) "主26003"</code>
NULL
나는 child26003
ccpint(26004)
bool(true)
bool(false)
bool(false)
int(0)
int (0)
pppppppp
int(26003)
iiiiiii 정지
string(8) "main 26003"
int(26004)
I'm child26003
ccpint(26005)
bool( true )
부울(거짓)
부울(거짓)
int(0)
int(0)
pppppppp
int(26003)
iiiiii