什么是jmm的可见性,有序性,原子性
时间: 2024-08-28 21:02:01 浏览: 117
14、深入理解并发可见性、有序性、原子性与JMM内存模型
Java内存模型(Java Memory Model,简称JMM)定义了Java虚拟机(JVM)在多线程环境下共享内存行为的一组规范。JMM主要关注的是可见性、有序性以及原子性这三种特性:
1. 可见性:指当一个线程修改了共享变量的值,其他线程能够立即得知这个修改。在JMM中,为了保证可见性,对于共享变量的写操作会立刻同步到主内存中,而读操作则会直接从主内存中读取,而不是从工作内存中读取过期的值。
2. 有序性:指程序代码的执行顺序与指令顺序的一致性。在Java中,为了提高性能,编译器和处理器可能会对指令进行重排序,这可能会导致线程执行的结果与代码逻辑顺序不一致。为了保证有序性,JMM规定了happens-before规则,确保特定的操作顺序。
3. 原子性:指一个操作或者多个操作,要么全部执行,要么都不执行。在JMM中,对于基本类型的读取和赋值操作是原子操作,但是复合操作(如i++)并不是原子操作,需要额外的同步机制来保证原子性。
阅读全文