![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java并发编程
一森丶jsone
这个作者很懒,什么都没留下…
展开
-
Java并发编程 -- Volatile解析
文章目录前言一、Java内存结构和Java内存模型1.1 Java内存结构1.2 Java内存模型1.2.1 硬件内存架构1.2.2 Java内存模型1.2.3 JMM和Java运行时数据区的关系1.2.4 JMM和硬件内存结构的关系二、使用步骤1.引入库2.读入数据总结 前言 Volatile是轻量级的Synchronized。那么Volatile轻在哪,它的实现原理是什么样的?要想了解这些就要搞清楚java内存模型(JMM)等内容 一、Java内存结构和Java内存模型 1.1 Java内存结构原创 2020-12-21 15:13:03 · 152 阅读 · 0 评论 -
并发编程 -- Synchronized浅析
文章目录前言一、Synchronized是什么?1.1 临界区1.2 竞态条件1.3 互斥和同步1.4 原子性 一致性 有序性1.4.1 原子性1.4.2 一致性1.4.3 有序性二、在哪里加锁?三、工作原理1. 对象头1.1 面试题1.2 总结2 锁升级2.1 偏向锁2.1.1 加锁流程2.1.2 锁的撤销2.1.3 批量重偏向2.1.4 批量撤销2.1.5 总结2.2 轻量级锁2.2.1 加锁2.2.2 解锁2.3 重量级锁2.3.1 加锁总结 前言 在并发编程中,有一个关键字搞java的人应.原创 2020-12-15 20:25:06 · 132 阅读 · 0 评论 -
JAVA并发编程之AQS源码解析二
手撕AQS源码(1) – 独占锁的释放 文章目录手撕AQS源码(1) – 独占锁的释放前言一、锁的正确使用姿势思考二、ReentrantLock的锁释放1. lock.unlock();2. release(int arg)2.1 tryRelease(arg)思考2.2 回到release(int arg)2.3 unparkSuccessor(Node node)思考问题疑问一疑问二1. LockSupport.unpark(s.thread)1.1 shouldParkAfterFailedAcqu原创 2020-12-11 10:44:48 · 112 阅读 · 0 评论 -
java并发编程之AQS
手撕AQS源码(1) – 独占锁的获取 文章目录手撕AQS源码(1) -- 独占锁的获取前言一、AQS是什么?二、Java并发工具类的三板斧1.状态2.队列3.CAS三 AQS核心实现状态Owner队列分析:sync queueCAS操作总结四 举例分析:FairSync in ReentrantLock加锁流程分析tryAcquire总结两个小疑问acquireQueued(addWaiter(Node.EXCLUSIVE), arg)addWaiter(Node.EXCLUSIVE)小总结思考enq原创 2020-12-09 17:49:50 · 181 阅读 · 0 评论