(PECL sync >= 1.0.0)
SyncSemaphore::__construct — 构造一个新的 SyncSemaphore 对象
构造一个命名或未命名的信号量。
name
如果这是一个命名信号量对象,则为信号量的名称。
注意:
如果名称已存在,则当前运行进程的用户必须能够打开它,否则将抛出一个包含无意义错误消息的异常。
initialval
信号量的初始值。这是可以获得的锁的数量。
autounlock
指定在PHP脚本结束时是否自动解锁信号量。
如果一个对象是:一个命名信号量,其autounlock为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();
?>