博主总结的思维导图,有需要的可自取
本篇文章目的
- 掌握updateAndGet()/getAndUpdate()
- updateAndGet()/getAndUpdate()源码分析
前置知识点
- 函数式编程
- CAS原理
updateAndGet()/getAndUpdate()使用
应用场景:多线程访问共享资源,对共享资源使用CAS乐观(无)锁思想,可以对共享资源进行线程安全的加减乘除操作。
import java.util.concurrent.atomic.AtomicInteger;
public class AtomicIntegerTest {
public static void main(String[] args) {
AtomicInteger ato = new AtomicInteger(5);//初始化共享资源ato值为5
System.out.println(ato.updateAndGet(value -> value * 10));//结果为50
//value为当前共享