SyncSemaphore::__construct

(PECL sync >= 1.0.0)

SyncSemaphore::__construct构造一个新的 SyncSemaphore 对象

描述

public SyncSemaphore::__construct(string $name = ?, int $initialval = 1, bool $autounlock = true)

构造一个命名或未命名的信号量。

参数

name

如果这是一个命名信号量对象,则为信号量的名称。

注意:

如果名称已存在,则当前进程运行的用户必须能够打开它,否则会抛出异常,并显示无意义的错误消息。

initialval

信号量的初始值。这是可以获得的锁的数量。

autounlock

指定在 PHP 脚本结束时是否自动解锁信号量。

警告

如果一个对象是:一个命名信号量,其自动解锁设置为 false,对象被锁定,并且 PHP 脚本在对象被解锁之前结束,那么底层信号量将处于不一致状态。

返回值

新的 SyncSemaphore 对象。

错误/异常

如果信号量无法创建或打开,则会抛出异常。

示例

示例 #1 SyncSemaphore::__construct() 示例

<?php
$semaphore
= new SyncSemaphore("LimitedResource_2clients", 2);

if (!
$semaphore->lock(3000))
{
echo
"Unable to lock semaphore.";

exit();
}

/* ... */

$semaphore->unlock();
?>

参见

添加说明

用户贡献说明

本页没有用户贡献说明。
To Top