上文学习了JUC下的可重入互斥锁,今天继续看下JUC包下的读写锁,并与之进行对比。我们知道,ReentrantLock锁是基于AQS实现的,同样读写锁也是如此。不同的是,ReentrantLock的state用0/1作为标识,而读写锁中由于有两个syc的实现,内部包含了读锁和写锁,就不能用一个state来做区分,这里的做法是将32的state分开,高16bit为做读锁持有数量,低16bi表示写锁持有数量。读写锁适用于较大规模对,读多写少对情况。写锁可以降级为读锁,而读锁却不能升级为写锁。 看下源码中对注释: &nb…

2016年1月2日 0条评论 4点热度 阅读全文