JUC
文章平均质量分 94
饺子泡牛奶
初级软件测试助理
展开
-
JUC-Java线程
章节目录:一、进程与线程1.1 什么是进程?1.2 什么是线程?1.3 二者对比二、并发与并行2.1 什么是并发?2.2 什么是并行?2.3 二者对比2.4 误区避免三、Java 线程使用3.1 三种使用方式3.2 小结四、查看进程与线程4.1 Windows4.2 Linux4.3 Java五、线程运行原理5.1 栈与栈帧5.2 线程上下文切换......原创 2022-08-06 23:26:07 · 735 阅读 · 0 评论 -
JUC-管程
章节目录:一、什么是管程1.1 概述1.2 管程组成部分1.3 变量共享问题1.4 临界区概述1.5 解决方案二、synchronized2.1 概述2.2 使用 synchronized 解决变量共享问题2.3 其它加锁情况原创 2022-08-22 08:15:00 · 1069 阅读 · 0 评论 -
JUC-内存
一、Java 内存模型二、可见性2.1 示例及说明2.2 可见性与原子性三、CPU 缓存结构原理3.1 缓存结构3.2 内存屏障四、Balking 同步模式五、有序性5.1 示例及说明5.2 指令级并行5.3 指令重排序优化5.4 支持流水线的处理器原创 2022-09-13 08:06:06 · 536 阅读 · 0 评论 -
JUC-无锁
一、问题引出1.1 需求与问题1.2 解决方式二、CAS 与 volatile2.1 CAS2.2 volatile2.3 为什么无锁效率高?2.4 CAS 的特点三、原子整数四、原子引用4.1 AtomicReference原创 2022-09-13 08:08:25 · 146 阅读 · 0 评论 -
JUC-不可变
章节目录:一、日期转换问题1.1 问题提出1.2 解决方式二、不可变设计三、享元模式3.1 在 JDK 中的运用3.2 自定义使用四、final 原理4.1 设置 final 变量的原理4.2 获取 final 变量的原理五、无状态设计原创 2022-09-13 08:12:29 · 219 阅读 · 0 评论 -
JUC-线程池
一、线程池概述1.1 什么是线程池?1.2 为什么要使用线程池?1.3 线程池的组成部分1.4 应用范围二、自定义线程池2.1 自定义拒绝策略接口2.2 自定义任务队列2.3 自定义线程池2.4 测试三、Executors3.1 newFixedThreadPool3.2 newCachedThreadPool3.3 newSingleThreadExecutor3.4 其它创建线程方法四、ThreadPoolExecutor4.1 类图与继承关系4.2 线程池状态4.3原创 2022-10-03 09:26:16 · 1284 阅读 · 0 评论 -
JUC-AQS&ReentrantLock
一、AQS 原理1.1 特点1.2 使用1.3 自定义不可重入锁1.4 背景1.5 功能目标1.6 设计思想二、ReentrantLock 原理2.1 类继承关系2.2 非公平锁实现原理2.3 可重入原理2.4 可打断原理原创 2022-10-03 09:34:33 · 666 阅读 · 0 评论 -
JUC-读写锁&Semaphore
一、ReentrantReadWriteLock1.1 概述1.2 基本使用1.3 注意事项二、缓存应用2.1 缓存更新策略2.2 读写锁实现一致性缓存三、读写锁原理3.1 t1 加写锁、t2 加读锁3.2 其它线程加读写锁3.3 t1 释放写锁3.4 t1、t2 释放读锁3.5 源码分析四、StampedLock4.1 基本使用4.2 读写优化原创 2022-10-15 20:58:09 · 1379 阅读 · 0 评论 -
JUC-倒计时锁
章节目录:一、CountDownLatch1.1 基本使用1.2 应用之同步等待多线程准备完毕1.3 应用之同步等待多个远程调用结束二、CyclicBarrier2.1 场景引出2.2 CyclicBarrier与CountDownLatch的区别三、结束语原创 2022-10-16 16:03:40 · 523 阅读 · 0 评论 -
JUC-线程安全集合类
一、概述二、ConcurrentHashMap2.1 并发问题2.2 重要属性和内部类2.3 重要方法2.4 构造器2.5 get 流程2.6 put 流程2.7 size 计算流程2.8 对比 JDK 7 的 ConcurrentHashMap 有什么区别?三、LinkedBlockingQueue3.1 入队出队3.2 加锁分析原创 2022-11-05 08:38:49 · 1260 阅读 · 0 评论