swoole_table->lock
锁定整个表
function swoole_table->lock()
最新版本已移除
lock
和unlock
方法,请使用Swoole\Lock
来实现数据同步
当多个进程同时要操作一个事务性操作时,一定要加锁,将整个表锁定。操作完成后释放锁。
- lock() 是互斥锁,所以只能保护lock/unlock中间的代码是安全的。lock/unlock之外的操作是不能保护的
- set/get/del操作不使用互斥锁,所以lock之后无法阻止其他进程调用这些函数
lock/unlock必须成对出现,否则会发生死锁,这里务必要小心
lock/unlock之间不应该加入太多操作,避免锁的粒度太大影响程序性能
lock/unlock之间的代码,应当try/catch避免抛出异常导致跳过unlock发生死锁