image.png

一、局部变量

在各自工作内存中创建变量 i ,互不干涉
image.png

二、不可变对象

已经创建,对外的状态就不会改变的对象,比如String s = “hello “

三、threadLocal

本质上是在每个线程有自己的一个副本,每个线程的副本互不影响
image.png

四、cas 原子类

1、CAS 含义: Compare And Swap , 比较并置换
2、CAS 机制使用了3个基本操作数,内存地址V、旧的预期值 A ,要修改的值B
当内存地址V所对应的值 等于 A ,才会把内存地址V对应的值改成B
3、JAVA中 以 Atomic 为前缀的一系列类,都采用了CAS 思想
4、Atomic系列 使用的是一种无锁化的CAS操作,基于乐观锁的,并发性能比较高、多个线程同时使用
image.png
image.png
image.png

五、Synchronized/ReentrantLock 加锁

image.png