1234567891011121314151617181920212223242526272829 |
- <?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";
|