2
給定以下代碼,如何確保完成的MyWorker對象被銷燬/釋放內存?PHP pThreads - 你如何執行垃圾收集?
由於我的腳本的作用,我需要約50個線程不斷從cURL獲取數據並對其進行處理。
我已經嘗試了線程永不離開run()
,或者如這個示例代碼所示,他們離開運行並使收集功能產生它們的新副本。
但是無論我在一分鐘左右的時間內遇到了什麼內存限制,你能告訴我我做錯了什麼嗎?
class MyWorker extends Threaded
{
public $complete;
public function __construct() {$this->complete = false;}
public function run() {$this->complete = true;}
}
$pool = new Pool(50);
for($i=0; $i<50; $i++)
$pool->submit(new MyWorker());
$pool->collect(function($worker)
{
global $pool;
if($worker->complete == true)
$pool->submit(new MyWorker());
return $worker->complete;
});
$pool->shutdown();