语义规范
JMM规范
JMM概要
程序顺序与顺序一致性
JMM在顺序一致性方面的努力
// shared.java
int pwrite = 0;
int cwrite = 0;
// producer.java
int pread = 0;
int r1 = 0;
run(){
r1 = 20; // --- 1
pread = cwrite; // --- 2
pwrite = 10; // --- 3
}
// consumer.java
int cread = 0;
int r2 = 0;
run(){
cread = pwrite; // --- 4
r2 = 21; // --- 5
cwrite = 20; // --- 6
}
共享数据规则
线程操作规则
相当于线程行为可以被其他线程看到,也可以检测到其他线程的行为动作,程序行为表现如下:
Synchronization原则(能够被感知,可见行为的变化)
Happen-Before原则(规范)
感谢花时间阅读,如果有用欢迎转发或者点个好看,谢谢!!!