作者回复: 可以这样
作者回复: 👍
作者回复: 可以这样理解,不过释放了读锁,也就谈不上升级了
作者回复: 获取写锁的前提是读锁和写锁均未被占用
获取读锁的前提是没有其他线程占用写锁
申请写锁时不中断其他线程申请读锁
公平锁如果过有写申请,能禁止读锁
作者回复: 分布式有分布式的锁,单机的效率就是靠多线程了
作者回复: 可以,ArrayBlockingQueue有界是因为必须传capacity参数,LinkedBlockingQueue传capacity参数就是有界,不传就是无界
作者回复: 降级稍微快一点,而且一定能成功。
作者回复: 读写锁本身就是个通用的概念
作者回复: 系统停止了响应,cpu利用率低大概率是死锁了,没法推断,只能大胆假设,小心求证
作者回复: 是的,只允许同时读
作者回复: 本地缓存更快
作者回复: 一个是出于性能的考虑,一个是防止数据的不一致
作者回复: 不会一直拿不到,只是等待的时间会很长
作者回复: 一般不会饿死,除非读锁异常导致释放不了。公平锁也不是导致写锁等待时间久的主要原因。