上一页 1 2 3 4 5 6 7 ··· 10 下一页
摘要:JDK 中基于数组的阻塞队列 ArrayBlockingQueue 原理剖析,ArrayBlockingQueue 内部如何基于一把独占锁以及对应的两个条件变量实现出入队操作的线程安全? 首先我们先大概的浏览一下ArrayBlockingQueue 的内部构造,如下类图: 如类图所示,可以看到Arr 阅读全文
posted @ 2018-06-24 16:58 妮蔻 阅读(439) 评论(0) 推荐(0) 编辑
摘要:JDK 中基于链表的阻塞队列 LinkedBlockingQueue 原理剖析,LinkedBlockingQueue 内部是如何使用两个独占锁 ReentrantLock 以及对应的条件变量保证多线程先入队出队操作的线程安全?为什么不使用一把锁,使用两把为何能提高并发度? LinkedBlocki 阅读全文
posted @ 2018-06-23 21:45 妮蔻 阅读(2088) 评论(0) 推荐(0) 编辑
摘要:JDK 中基于链表的非阻塞无界队列 ConcurrentLinkedQueue 原理剖析,ConcurrentLinkedQueue 内部是如何使用 CAS 非阻塞算法来保证多线程下入队出队操作的线程安全? ConcurrentLinkedQueue是线程安全的无界非阻塞队列,其底层数据结构是使用单 阅读全文
posted @ 2018-06-19 16:46 妮蔻 阅读(3990) 评论(3) 推荐(3) 编辑
摘要:StampedLock是JUC并发包里面JDK1.8版本新增的一个锁,该锁提供了三种模式的读写控制,当调用获取锁的系列函数的时候,会返回一个long 型的变量,该变量被称为戳记(stamp),这个戳记代表了锁的状态。 try系列获取锁的函数,当获取锁失败后会返回为0的stamp值。当调用释放锁和转换 阅读全文
posted @ 2018-06-16 23:27 妮蔻 阅读(4161) 评论(1) 推荐(4) 编辑
摘要:我们知道在解决线程安全问题上使用 ReentrantLock 就可以,但是 ReentrantLock 是独占锁,同时只有一个线程可以获取该锁,而实际情况下会有写少读多的场景,显然 ReentrantLock 满足不了需求,所以 ReentrantReadWriteLock 应运而生,Reentra 阅读全文
posted @ 2018-06-14 16:43 妮蔻 阅读(1238) 评论(1) 推荐(0) 编辑
摘要:ReentrantLock是可重入的独占锁,同时只能有一个线程可以获取该锁,其他获取该锁的线程会被阻塞后放入该锁的AQS阻塞队列里面。 首先我们先看一下ReentrantLock的类图结构,如下图所示: 从类图可以知道,ReentrantLock最终还是使用AQS来实现,并且根据参数决定内部是公平锁 阅读全文
posted @ 2018-06-12 16:04 妮蔻 阅读(562) 评论(1) 推荐(0) 编辑
摘要:为什么要说AbstractQueuedSynchronizer呢? 因为AbstractQueuedSynchronizer是JUC并发包中锁的底层支持,AbstractQueuedSynchronizer是抽象同步队列,简称AQS,是实现同步器的基础组件,并发包中锁的实现底层就是使用AQS实现,另 阅读全文
posted @ 2018-06-10 22:06 妮蔻 阅读(419) 评论(0) 推荐(0) 编辑
摘要:并发包中并发List只有CopyOnWriteArrayList这一个,CopyOnWriteArrayList是一个线程安全的ArrayList,对其进行修改操作和元素迭代操作都是在底层创建一个拷贝数组(快照)上进行的,也就是写时拷贝策略。 我们首先看一下CopyOnWriteArrayList的 阅读全文
posted @ 2018-06-09 20:34 妮蔻 阅读(4349) 评论(1) 推荐(2) 编辑
摘要:一.LongAdder原理 LongAdder类是JDK1.8新增的一个原子性操作类。AtomicLong通过CAS算法提供了非阻塞的原子性操作,相比受用阻塞算法的同步器来说性能已经很好了,但是JDK开发组并不满足于此,因为非常搞并发的请求下AtomicLong的性能是不能让人接受的。 如下Atom 阅读全文
posted @ 2018-06-07 19:54 妮蔻 阅读(3051) 评论(1) 推荐(3) 编辑
摘要:一.Unsafe类的源码分析 JDK的rt.jar包中的Unsafe类提供了硬件级别的原子操作,Unsafe里面的方法都是native方法,通过使用JNI的方式来访问本地C++实现库。 rt.jar 中 Unsafe 类主要函数讲解, Unsafe 类提供了硬件级别的原子操作,可以安全的直接操作内存 阅读全文
posted @ 2018-06-06 21:29 妮蔻 阅读(599) 评论(1) 推荐(1) 编辑
上一页 1 2 3 4 5 6 7 ··· 10 下一页