
java并发
方友运
技术是需要交流的,学习总是需要持之以恒的
展开
-
【Java并发】AQS二:AbstractQueuedSynchronizer同步基础框架内部Node
/** * 等待队列节点类 * * 等待队列是“CLH”(Craig、Landin和Hagersten)锁队列的变体。CLH锁通常用于自旋锁。相反,我们使用它们来阻塞同步器, * 但是使用相同的基本策略,即在其节点的前身中保存关于线程的一些控制信息。每个节点中的“status”字段跟踪线程是否应该阻塞。 * 节点在其前任节点释放时发出信号。否则,队列的每个节点都充当一个特定的通知样式的监...原创 2019-04-23 08:34:07 · 222 阅读 · 0 评论 -
【Java并发】CopyOnWriteArrayList写时复制容器
Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实现的并发容器,它们是CopyOnWriteArrayList和CopyOnWriteArraySet。...原创 2019-04-17 13:53:23 · 330 阅读 · 0 评论 -
【Java并发】信号量闭锁栅栏以及其工具类
信号量,闭锁,栅栏都是java中锁的一个实现和ReentrantLock锁类似,只是有各自不同的特点。ReentrantLock是对唯一资源的访问进行并发的控制。 一:信号量(Semaphore) 信号量是对有限数量的资源访问进行并发控制,假若有n个资源,在某个时刻最多允许n个线程同时访问。信号量在Java中的具体实现是Semaphore. ...原创 2019-04-18 17:57:23 · 393 阅读 · 0 评论 -
【Java并发】AQS一:AbstractQueuedSynchronizer同步工具介绍
AQS提供一个框架来实现依赖于先进先出(FIFO)等待队列的阻塞锁和相关同步器(信号量、事件等)。该类被设计为大多数类型的同步器的有用基础,这些同步器依赖于单个原子 state 值来表示状态。子类必须定义更改此状态的受保护方法,并定义该状态对于正在获取或释放的对象的含义。鉴于此,该类中的其他方法执行所有排队和阻塞机制。子类可以维护其他状态字段,但是只跟踪使用方法getState()、setStat...原创 2019-04-23 08:30:46 · 190 阅读 · 0 评论 -
【Java并发】AQS三:AbstractQueuedSynchronizer同步基础框架内部条件等待ConditionObject
ConditionObject条件实现AQS作为Lock接口实现的基础。 该类的方法文档从锁和条件用户的角度描述了机制,而不是行为规范。该类的导出版本通常需要附带描述依赖于关联的AbstractQueuedSynchronizer的条件语义的文档。 public class ConditionObject implements Condition, java.io.Serializable { ...原创 2019-04-23 16:32:47 · 366 阅读 · 0 评论 -
【Java并发】Executor框架和线程池ThreadPoolExecutor的使用
【Java并发】线程池ThreadPoolExecutord的使用原创 2019-04-30 10:53:26 · 435 阅读 · 0 评论 -
【Java并发】AQS四:AbstractQueuedSynchronizer内部方法分类详细
AQS提供一个框架来实现依赖于先进先出(FIFO)等待队列的阻塞锁和相关同步器(信号量、事件等)。该类被设计为大多数类型的同步器的有用基础,这些同步器依赖于单个原子 state 值来表示状态。子类必须定义更改此状态的受保护方法,并定义该状态对于正在获取或释放的对象的含义。鉴于此,该类中的其他方法执行所有排队和阻塞机制。子类可以维护其他状态字段,但是只跟踪使用方法getState()、setStat...原创 2019-04-24 13:58:46 · 250 阅读 · 0 评论