Рекурсивный акроним словосочетания «PHP: Hypertext Preprocessor»
Добро пожаловать на форум PHP программистов!
За последние 24 часа нас посетили 17878 программистов и 1567 роботов. Сейчас ищут 982 программиста ...
Pool::collect - Collect references to completed tasks
Вернуться к: Pool
Pool::collect
(PECL pthreads >= 2.0.0)
Pool::collect — Collect references to completed tasks
Описание
Allows the Pool to collect references determined to be garbage by the given collector
Список параметров
-
collector
-
A Callable collector
Возвращаемые значения
void
Примеры
Пример #1 Creating Pools
<?php
class MyWork extends Stackable {
public function __construct() {
$this->complete = false;
}
public function run() {
printf(
"Hello from %s in Thread #%lu\n",
__CLASS__, $this->worker->getThreadId());
$this->complete = true;
}
public function isComplete() {
return $this->complete;
}
protected $complete;
}
class MyWorker extends Worker {
public function __construct(Something $something) {
$this->something = $something;
}
public function run() {
/** ... **/
}
}
$pool = new Pool(8, \MyWorker::class, [new Something()]);
$pool->submit(new MyWork());
usleep(1000);
$pool->collect(function($work){
return $work->isComplete();
});
var_dump($pool);
?>
Результат выполнения данного примера:
Hello from MyWork in Thread #140222468777728 object(Pool)#1 (6) { ["size":protected]=> int(8) ["class":protected]=> string(8) "MyWorker" ["workers":protected]=> array(1) { [0]=> object(MyWorker)#4 (1) { ["something"]=> object(Something)#5 (0) { } } } ["work":protected]=> array(0) { } ["ctor":protected]=> array(1) { [0]=> object(Something)#2 (0) { } } ["last":protected]=> int(1) }
Вернуться к: Pool