???????Java??????????
???????????? ???????[ 2013/3/20 10:13:40 ] ????????
???????????-?????????happens before ???
????????java?????????????????????????????????????????????????????????????????????????????????????
???????????????-????????????
class MonitorExample {
int a = 0;
public synchronized void writer() { //1
a++; //2
} //3
public synchronized void reader() { //4
int i = a; //5
……
} //6
}
???????????A???writer()????????????B???reader()??????????happens before????????????????happens before ?????????????
????1???????????????1 happens before 2?? 2 happens before 3; 4 happens before 5?? 5 happens before 6??
????2?????????????????3 happens before 4??
????3??????happens before ????????2 happens before 5??
????????happens before ???????λ???????????£?
??????????У?????????????????????????????happens before ???????????????????????????????????????????????????????????Щ?????????happens before?????
???????????????A????????????????B?????????????????У?2 happens before 5?????????A????????????п?????????????????B?????????????????????B???????
?????????????????????
?????????????????JMM??????????????????е?????????μ???????С????????MonitorExample?????????A????????????????????????????£?
????????????????JMM??????????????????????Ч?????????????????????????????????????????????????????????????????????????????
????????????-??????????????volatileд-??????????壬????????????????volatileд?????????????壻???????volatile???????????????塣
????????????????????????????????????
?????? ???A????????????????????A???????????????????????????????????A??????????????????????
?????? ???B????????????????????B??????????????????????????????????????????????????????
?????? ???A?????????????B???????????????????????????A?????????????B?????????
??????
???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11