![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JUC
文章平均质量分 90
Java.Util.Concurrent包下的类的学习
古月日月衣羊
博观而约取,厚积而薄发
展开
-
JUC并发编程与源码分析(6)
JUC并发编程与源码分析一、AQS(AbstractQueuedSynchronizer) 抽象队列同步器1.1 是什么?1.2 AQS为什么是JUC内容中最重要的基石1.2.1 和AQS有关的1.2.2 进一步理解锁和同步器的关系锁,面向锁的使用者同步器,面向锁的实现者1.3 能干嘛?1.4 AQS初步1.4.1 AQS初识官网解释有阻塞就需要排队,实现排队必然需要队列1.4.2 AQS内部体系架构1.4.2.1 AQS的int变量1.4.2.2 AQS的CLH队列1.4.2.3 小总结1.4.2.4 内原创 2021-12-01 00:15:46 · 466 阅读 · 0 评论 -
JUC并发编程与源码分析(5)
JUC并发编程与源码分析一、ThreadLocal1.1 是什么?1.2 能干嘛?1.3 api介绍1.4 入门案例1.5 ThreadLocal源码分析Thread,ThreadLocal,ThreadLocalMap 关系Thread和ThreadLocalThreadLocal和ThreadLocalMap三者总概括小总结1.6 ThreadLocal内存泄漏问题什么是内存泄漏?回顾ThreadLocalMap强软弱虚四大引用整体架构强引用软引用弱引用虚引用GCRoots和四大引用小总结为什么要用弱引原创 2021-11-28 21:38:23 · 529 阅读 · 0 评论 -
【JUC】CountDownLatch
CountDownLatch一、概述1.1 案例代码解决方案 一、概述 CountDownLatch允许一个或多个线程等待其他线程完成操作。 1.1 案例 假设由50个线程,有一个原子类AtomicInteger,50个线程都对该类进行自增1000次 代码 public class AtomicDemo { static AtomicInteger atomicInteger = new AtomicInteger(); public static void main(String[] a原创 2021-11-26 21:19:03 · 248 阅读 · 0 评论 -
JUC并发编程与源码分析(1)
JUC并发编程与源码分析JUC四大口诀为什么多线程极其重要?一、线程基础知识1.1 线程的start方法1.2 线程相关概念1.2.1 进程1.2.2 线程何为进程和线程1.2.3 管程Monitor(监视器),也就是我们平时所说的锁1.3 用户线程和守护线程代码二、CompletableFuture2.1 Future和Callable接口2.2 FutureTask2.2.1 Future接口相关架构2.2.2. get()阻塞代码2.2.3 isDone()轮询 JUC四大口诀 高内聚低耦合前提下,原创 2021-11-01 22:59:53 · 608 阅读 · 0 评论 -
JUC并发编程与源码分析(2)
JUC并发编程与源码分析一、Java的锁1.1 乐观锁和悲观锁1.1.1 悲观锁1.1.2 乐观锁1.2 通过8种情况演示锁运行案例,看看我们到底锁的是什么1.2.1 JVM中对应的锁在哪里?1.2.2 synchronized有三种应用方式1.2.2.1 JDK源码(notify方法)说明举例1.2.2.2 8种锁的案例实际体现在3个地方1.2.3 从字节码角度分析synchronized实现synchronized同步代码块一定是一个enter两个exit吗?synchronized普通同步方法sync原创 2021-11-05 23:55:45 · 376 阅读 · 0 评论 -
JUC并发编程与源码分析(3)
JUC并发编程与源码分析一、Java内存模型之JMM1.1 计算机硬件存储体系1.2 Java内存模型Java Memory Model1.3 JMM规范下,三大特性1.3.1 可见性1.3.2 原子性1.3.3 有序性案例1.4 JMM规范下, 多线程对变量的读写过程1.4.1 读取过程1.4.2 小总结1.5 JMM规范下,多线程先行发生原则之happens-before1.5.1 x,y案例说明1.5.2 先行发生原则说明1.5.3 happens-before总原则1.5.4 happens-bef原创 2021-11-07 22:02:26 · 233 阅读 · 0 评论 -
JUC并发编程与源码分析(4)
JUC并发编程与源码分析一、CAS1.1 没有CAS之前多线程环境不使用原子类保证线程安全多线程环境使用原子类保证线程安全(基本数据类型)1.2 是什么?原理硬件级别保证CASDemo代码源码分析compareAndSet(int expect,int update)1.3 CAS底层原理(对Unsafe的理解)Unsafei++是线程不安全的,那atomicInteger.getAndIncrement()总结底层汇编cmpxchg总结1.4 自旋锁,借鉴CAS思想手写一个自旋锁1.5 CAS缺点ABAd原创 2021-11-27 20:42:27 · 558 阅读 · 0 评论