并发
申老皮
这个作者很懒,什么都没留下…
展开
-
RentrantLock源码剖析
RentrantLock源码剖析ReentrantLock是一个独占式的锁,支持重入.里面实现了公平锁与非公平锁;其中ReentrantLock支持可公平锁与非公平锁,最顶层的父类是AQS.获取锁阻塞释放全部都是通过AQS来实现.接下来详细说明这些是怎么实现的.Sync继承自AQSabstract void lock();抽象方法,让子类也就是两个公平和非公平类来实现.boolea...原创 2019-05-18 22:21:38 · 586 阅读 · 0 评论 -
ThreadLocal实现原理
ThreadLocal简介ThreadLocal是java中将非线程安全变为线程安全的一个神器.通过为每一个线程保存一个线程本地变量来保证数据的安全性,通过set()和get()方法来使用. 因为每个线程都拥有变量的副本.不和其他线程变量交互,所以不会出现线程安全问题.所以这里有一个点就是ThreadLocal应用的场景应该是变量的访问是没有依赖关系的,每个线程只和自己的数据副本打交道.属性...原创 2019-05-20 22:17:33 · 706 阅读 · 0 评论 -
AQS源码解析
AbstractQueueSynchronizer定义了一套多线程访问共享资源的同步框架首先维护了一个volatile state状态量 和 一个阻塞队列,是FIFO队列,队列使用链表实现.state的访问方式有三种getstate()setState()compareAndSetState()AQS 定义了两种资源共享状态,一种是独占(Exclusive 如ReentrantLoc...原创 2019-05-17 22:22:52 · 616 阅读 · 0 评论