2024 年日本 PHP 研討會

Worker::collect

(PECL pthreads >= 3.0.0)

Worker::collect收集已完成任務的參考

說明

public Worker::collect(Callable $collector = ?): int

允許 Worker 收集被指定收集器判定為垃圾的參考。您可以選擇性地提供一個收集器。

參數

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

新增註解

使用者貢獻的註解

此頁面沒有使用者貢獻的註解。
To Top