(PECL pthreads >= 3.0.0)
Worker::collect — 收集已完成任務的參考
collector
一個 Callable 收集器,它會根據任務是否可以收集而返回布林值。只有在極少數情況下才需要使用自訂收集器。
Worker 堆疊上剩餘待收集任務的數量。
範例 #1 Worker::collect() 的基本範例
<?php
$worker = new Worker();
echo "目前堆疊上有 {$worker->collect()} 個待回收的任務\n";
for ($i = 0; $i < 15; ++$i) {
$worker->stack(new class extends Threaded {});
}
echo "堆疊上還有 {$worker->collect()} 個待回收的任務\n";
$worker->start();
while ($worker->collect()); // 阻塞直到所有任務執行完畢
echo "現在堆疊上有 {$worker->collect()} 個待回收的任務\n";
$worker->shutdown();
以上範例將輸出
There are currently 0 tasks on the stack to be collected There are 15 tasks remaining on the stack to be collected There are now 0 tasks on the stack to be collected