LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 211|回复: 0

内部类 - Sync核心函数分析

[复制链接]
发表于 2024-1-22 00:01:20 | 显示全部楼层 |阅读模式

内部类 - Sync核心函数分析
对ReentrantReadWriteLock对象的操作绝大多数都转发至Sync对象进行处理。下面对Sync类中的重点函数进行分析

sharedCount函数

表示占有读锁的线程数量,源码如下

static int sharedCount(int c)    { return c >>> SHARED_SHIFT; }


说明: 直接将state右移16位,就可以得到读锁的线程数量,因为state的高16位表示读锁,对应的低十六位表示写锁数量。

exclusiveCount函数

表示占有写锁的线程数量,源码如下

static int exclusiveCount(int c) { return c & EXCLUSIVE_MASK; }


说明: 直接将状态state和(2^16 - 1)做与运算,其等效于将state模上2^16。写锁数量由state的低十六位表示。



原文链接:https://pdai.tech/md/java/thread/java-thread-x-lock-ReentrantReadWriteLock.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表