AQS
森林森
java学习
展开
-
LinkedBlockingQueue 学习
LinkedBlockingQueue 独占锁实现的阻塞队列 LinkedB!ockingQueue LinkedB lockingQueue 也是使用单向链表实现的,其也有两个 Node ,分别用来存放首、尾节点, 并且还有一个初始值为 0 的原子变量 count ,用来记录 队列元素个数 。 另外还有两个 ReentrantLock 的实例,分别用来控制元素入队和出队的原 子性,其中 take...原创 2019-06-05 15:41:21 · 208 阅读 · 0 评论 -
原 setState 和 compareAndSetState方法作用分析
AQS中有三个protected方法:getState, setState, compareAndSetState。 这三个方法是AQS中提供给自定义同步器来获取state状态的三个基本工具方法,那么setState和compareAndSetState都是用来修改状态的,两者有什么不一样,为什么两者能共存,其各自使用场景分别是什么? 分析AQS和ReentrantLock的源码可知: compa...转载 2019-06-04 14:54:24 · 3557 阅读 · 0 评论