(PECL sync >= 1.0.0)
SyncSemaphore::__construct — 构造一个新的 SyncSemaphore 对象
构造一个命名或未命名的信号量。
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();
?>