月度归档: 2022 年 6 月

5 篇文章

JUC 7. 共享模型之不可变
本章内容 不可变类的使用 不可变类设计 无状态类设计 7.1 日期转换的问题 问题提出 下面的代码在运行时,由于 SimpleDateFormat 不是线程安全的 @Slf4j public class Test1 { public static void main(String[] args) { SimpleDateFormat sim…
JUC 6. 共享模型之无锁
本章内容 CAS 与 volatile 原子整数 原子引用 原子累加器 Unsafe 6.1 问题提出 有如下需求,保证 account.withdraw 取款方法的线程安全 package cn.itcast; import java.util.ArrayList; import java.util.List; interface Account…
JVM 第五章 共享模型之内存
为什么呢?分析一下: 1. 初始状态, t 线程刚开始从主内存读取了 run 的值到工作内存。 2. 因为 t 线程要频繁从主内存中读取 run 的值,JIT 编译器会将 run 的值缓存至自己工作内存中的高速缓存中, 减少对主存中 run 的访问,提高效率 3. 1 秒之后,main 线程修改了 run 的值,并同步至主存,而 t 是从自己工作内…
JUC并发编程 第一章
预备知识希望你不是一个初学者线程安全问题,需要你接触过 Java Web 开发、Jdbc 开发、Web 服务器、分布式框架时才会遇到基于 JDK 8,最好对函数式编程、lambda 有一定了解采用了 slf4j 打印日志,这是好的实践采用了 lombok 简化 java bean 编写给每个线程好名字,这也是一项好的实践 pom.xml <p…