Java并发
Java并发相关
7k9c
世上只有一种英雄主义,就是在认清生活真相之后仍然热爱生活。
展开
-
AbstractQueuedSynchronizer源码解析(上)
文章目录AbstractQueuedSynchronizer源码解析(上)加锁源码解锁实例分析总结AbstractQueuedSynchronizer源码解析(上)AbstractQueuedSynchronizer(以下简称AQS)是很多类的基石,ReentrantLock,CountDownLatch等都是基于它。先来看它的变量,比较简单,就三个。/** * 头部 */private transient volatile Node head;/** * 等待队列尾部 */priv原创 2020-12-14 09:17:38 · 183 阅读 · 0 评论 -
偏向锁、轻量级锁,重量级锁膨胀过程
在JDK 1.6之前,synchonized同步方式的成本非常高,因为使用了系统调用引起的内核态与用户态切换、线程阻塞造成的线程切换等。但是后面改进了,引进了锁的四个状态,分别是无锁,偏向锁,轻量级锁,重量级锁,而且是只能逐级膨胀的。但是我刚接触的时候一直很纠结膨胀过程,后来搞明白了,现在抽个时间总结记录一下。首先我们要知道,这几个级别适用的情况。偏向锁:适用于只有一个线程进入同步区轻量...原创 2018-12-27 21:29:11 · 917 阅读 · 0 评论 -
ConcurrentHashMap源码解析(基于1.8版本)
开…开…开始了,久负盛名的ConcurrentHashMap。之前一直是看别人文章解析它,今天终于轮到我了。就像以前读高中的时候老师说的,写下了,才是自己的。ConcurrentHashMap(以下简称chm)是concurrent包下的用于多线程并发的一个类,由Doug Lea大神编写。它比HashMap更复杂(其实HashMap也没有很复杂 ),由于它是线程安全的同时效率还比HashTab...原创 2019-05-10 10:41:57 · 235 阅读 · 0 评论 -
对Collections.synchronizedList的部分思考
重温《Java并发编程实战》中,有地方引起了我的注意,以前估计读的也是一知半解的略过了,但是现在对多线程有着不一样的体悟之后,经过一段苦思冥想之后,终于想通了。这边把代码贴出来。线程不安全的:class ListHelper <E> { public List<E> list = Collections.synchronizedList(new Array...原创 2019-06-11 09:36:24 · 419 阅读 · 0 评论 -
Java线程池源码分析
并发这块相当重要 ,并且初学的时候很难理解是真的,犹记得我在初学并发的时候(当然也不是很久之前),头铁的看了《Java并发编程实战》这本神书。但是由于是刚入门并发这块,所以,读这本书的过程是相当痛苦的,虽然痛苦还是坚持读了下去,虽然一知半解,但总算感觉摸到了门槛。在看这本书的时候,对线程池这块印象确实比较深,所以决定走一波源码,而且线程池这块也是面试的重点之一吧,去读它的源码对理解线程池很有帮助...原创 2019-07-01 20:28:13 · 219 阅读 · 0 评论