1
我想了解有關php,分叉,共享資源等 雖然試圖理解這些概念,我得到了一個毫無意義的問題,我修正了(運氣好)但沒有得到想法..php分叉和使用memcache
它可能是一個錯誤..
<?php
$m = new Memcached();
$m->addServer('localhost', 11211);
$m->set('name', 'anil');
$workerCount = 3;
for($c=0; $c<$workerCount; $c++){
$pid = pcntl_fork();
if($pid === 0){
/* Children */
$m->get('name');
$name = $m->get('name');
echo 'This is child number : ' . getmypid() . PHP_EOL;
echo 'And this is name value in memcache : ' . $name . ' : ' . $m->getResultCode() . PHP_EOL . PHP_EOL;
exit;
}else{
/* Parent */
pcntl_wait($status);
}
}
,你注意到了,我調用$ M->獲得兩倍..如果我不這是行不通的。
兩個呼號結果:
這是孩子數:9684這 在內存緩存microtime中:阿尼爾:0
這是孩子數:9685這 在內存緩存microtime中:anil:0
這是子編號:9686而這個 是在memcache中的microtime:anil:0
一個調用的結果:
個這是孩子數:9721這 在內存緩存microtime中:阿尼爾:0
這是孩子數:9722這 是,在microtime memcache :: 19
這是子數:9723而這個 是memcache中的microtime :: 19
PS: $ M-> getResultCode() - > 19:Memcached的:: RES_SOME_ERRORS
它可能是正確的。但是這個問題與它無關。正如我注意到它在第一個輸出中以某種方式工作。在第二個輸出中,您可以看到第一個孩子可以從memcache中獲得。 – anilyeni