l
对象锁 (per-object locks)
除了IX锁,其他类型都可以用于其他命名空间,这部分是最常用的锁类型。主要用于对数据库的某个具体元数据的并发控制。这类锁对象会
比较多,对其有独特的管理,本文不再展开说明。
根据锁的兼容性、以及通用性将锁分为两类。
unobtrusive锁相互间兼容,并且适用于所有DML操作。这类锁获取后不用记录下具体哪个线程申请的,只需要记录下有多少个请求已经获
得,通过锁对象下64位原子变量来计数,因此对其他连接的锁申请影响很小,表现比较低调。在64位中每种类型锁都有由固定的位范围存
放加锁个数。对于scoped与per-object是不同锁对象,因此位分别设置。
scoped locks: IX(0~59位)
per-object locks: S,SH(0~19位),SR(20~39位), SW(40~59位)
注意分配20位的不会产生溢出,因为当前设计不会同时有超过2^20 - 1个连接。
另外,还存在三个状态指示位,用于加速锁的处理。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70026696/viewspace-3004950/ ,如需转载,请注明出处,否则将追究法律责任。