2013-12-16 17 views
0

我嘗試從實例(Stacking.php)使用代碼:PHP pthreads的分段錯誤如果不存儲疊置元件的陣列

$worker = new ExampleWorker("My Worker Thread"); 
$work = array(); 
while($i++<10){ 
    printf(
     "Stacking: %d/%d\n", $i, $worker->stack($work[]=new Work(array(rand()*100))) 
    ); 
} 

我想採用本例中,把這個無限while循環等待用於來自數據庫的事件並在出現時堆疊新元素。

將有大量的事件堆棧,我不能將它們全部存儲在$ work數組中,並且想要以某種方式清理它或根本不使用它。

的問題是,當我改變:第一個工人後

$worker->stack($work[]=new Work(array(rand()*100)) 

$worker->stack(new Work(array(rand()*100)) 

PHP程序段錯誤結束

我怎樣才能把$工人─>堆棧中無限循環而不必存儲每個堆疊工作的參考?

回答

1

排序的答案是;你不能。

的實施是如何工作的,以及爲什麼在這裏佈置的細節:https://gist.github.com/krakjoe/6437782

我說話只會成爲其中的重複,在任何情況下,你將受益於閱讀整個文檔,在它的全部。