Files
qlg.tsgz.moe/vendor/swoole/examples/lock/lock.php
2019-09-06 23:53:10 +08:00

31 lines
612 B
PHP
Executable File

<?php
/**
* SWOOLE_MUTEX 互斥锁
* SWOOLE_FILELOCK 文件锁,需要在第二个参数传入一个锁文件
* SWOOLE_SPINLOCK 自旋锁(请查看swoole扩展信息,检测是否支持)
* SWOOLE_SEM 信号量
* SWOOLE_RWLOCK 读写锁
*/
$lock = new swoole_lock(SWOOLE_MUTEX);
echo "[Master]create lock\n";
$lock->lock();
if (pcntl_fork() > 0)
{
sleep(1);
$lock->unlock();
}
else
{
echo "[Child] Wait Lock\n";
$lock->lock();
echo "[Child] Get Lock\n";
$lock->unlock();
exit("[Child] exit\n");
}
echo "[Master]release lock\n";
unset($lock);
sleep(1);
echo "[Master]exit\n";