入门指引 Server Client Process AsyncIO Memory HttpServer WebSocket 高级 其他

发布于 2015-08-09 09:40:57 | 132 次阅读 | 评论: 0 | 来源: 网络整理

锁定整个表

function swoole_table->lock()

当多个进程同时要操作一个事务性操作时,一定要加锁,将整个表锁定。操作完成后释放锁。

  • lock() 是互斥锁,所以只能保护lock/unlock中间的代码是安全的。lock/unlock之外的操作是不能保护的
  • set/get/del操作不使用互斥锁,所以lock之后无法阻止其他进程调用这些函数

lock/unlock必须成对出现,否则会发生死锁,这里务必要小心
lock/unlock之间不应该加入太多操作,避免锁的粒度太大影响程序性能
lock/unlock之间的代码,应当try/catch避免抛出异常导致跳过unlock发生死锁

最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务