Threaded::synchronized

(PECL pthreads >= 2.0.0)

Threaded::synchronizedСинхронизация

Описание

public Threaded::synchronized(Closure $block, mixed ...$args): mixed

Выполняет блок, сохраняя блокировку синхронизации ссылочных объектов для вызывающего контекста.

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

block

Блок кода для выполнения.

args

Список аргументов переменной длины для использования в качестве аргументов функции блока.

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

Возвращаемое значение блока.

Примеры

Пример #1 Синхронизация

<?php
class My extends Thread {
public function
run() {
$this->synchronized(function($thread){
if (!
$thread->done)
$thread->wait();
},
$this);
}
}
$my = new My();
$my->start();
$my->synchronized(function($thread){
$thread->done = true;
$thread->notify();
},
$my);
var_dump($my->join());
?>

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

bool(true)