0
我已經過了幾個小時和幾天找到爲什麼php
分享我分叉的孩子和我之間的內存計算過,如果父母中一個函數分叉之前設置一個變量,然後該函數將始終返回〜PHP的分叉和內存共享我發瘋
new mytest;
class mytest{
var $t = 'Parent';
public function __construct(){
//$this->runChildProcess($i);
$pidsCount = 0;
for($i = 0; $i < 5; $i++) {
$pids[$pidsCount] = pcntl_fork();
if($pids[$pidsCount]) {
$this->t = 'Parent';
// i am the parent
$pidsCount++;
}
else {
$this->t = 'Enfant';
// i am the child
$this->runChildProcess($i);
exit();
}
}
for($i = 0; $i < $pidsCount; $i++) {
pcntl_waitpid($pids[$i], $status, WUNTRACED);
}
}
function runChildProcess($i) {
$a = rand(0,100)."\n";
echo $this->t.' : '.$a;
}
}
如果你運行這個示例它會很好,孩子們會輸出不同的數字。 但是,如果你取消註釋第一$this->runChildProcess($i);
然後你會看到所有的孩子將返回相同的結果(由兒童計算的第一個)
我不知道如何處理是: (
該死的奧利你說得對!謝謝 – beunwa