jmm内存模型
Java内存模型主要是为了消除在各种不同的操作系统上对内存操作差异的一个规范
- 在jvm运行的时候,会有一个主内存,各个线程会有各自的工作内存
- 各个线程不能直接操作主内存和别的线程的工作内存,只能通过把主内存数据拷贝到自己的工作内存中,从而对数据进行操作
在这个基础之上,java给我们提供了一堆的关键字、或并发对象,是我们能够在多线程下进行数据同步时,保证操作的原子性、有序性、一致性
1、synchronized
2、concurrent包
3、volatile(扩展:内存屏障、总线嗅探机制)等