PHP - Worker::collect() 函数


Worker::collect() 函数可以收集对已完成任务的引用。更多的相关函数请看:PHP Worker 函数

语法


public int Worker::collect([ Callable $collector ] )

Worker::collect() 函数允许 worker 收集由可选的给定收集器确定为垃圾的引用。

Worker::collect() 函数返回 worker 堆栈上要收集的剩余任务数。

示例


<?php
   $worker = new Worker();
   echo "stack 上当前有 {$worker->collect()} 个任务需要收集\n";

   for($i = 0; $i < 15; ++$i) {
      $worker->stack(new class extends Threaded {});
   }
   echo "stack 上还有 {$worker->collect()} 个任务需要收集\n";

   $worker->start();
   while($worker->collect()); // 阻塞,直到所有任务都完成执行
   echo "现在 stack 上有 {$worker->collect()} 个任务需要收集\n";
   $worker->shutdown();
?>