PHP 8.0.0 Released!

Worker::collect

(PECL pthreads >= 3.0.0)

Worker::collectСобрать ссылки на завершённые задачи

Описание

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

Позволяет Worker'у собрать "мусорные" ссылки на задачи. Опционально можно задать пользовательский сборщик.

Список параметров

collector

Сборщик типа Callable, который должен возвращать TRUE или FALSE в зависимости от того, можно ли собрать задачу. Случаи, когда вам может понадобиться собственный сборщик, крайне редки.

Возвращаемые значения

Количество оставшихся задач в стеке 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();

Результат выполнения данного примера:

Сейчас на стеке 0 задач, которые нужно собрать
На стеке 15 задач, которые нужно собрать
Теперь на стеке 0 задач, ждущих, когда их соберут

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top