????2????????
????JMM??????????????????????????????????????????????????????????????????????????????????????????????????μ????????????
???????????????????JMM?????????????????????????????????????????????е????????????????????
???????????????????JMM????????????????????java??????????????????????????????????????????memory barriers??intel????memory fence?????????????????????????????????????????????????е????????????????????
????????
????????г??????????????????????????????????????????????????????????????
????????????????????????????????????????????????£????????°???????????????????е????????????????????????????м?????Instruction-Level Parallelism?? ILP??????????????????С??????????????????????????????????????????????????????????????????????????????????/д????????????ü????洢???????????????????????С?

??????????1???????????????2??3?????????????????Щ??????????????????????????????????
????2.1 ??????????
?????????????????????????????????????????????????д???????????????????????????????????????????????????????????
???????? ??????? ??? д??? a = 1;b = a; д????????????????λ?á? д??д a = 1;a = 2; д????????????д????????? ????д a = b;b = 1; ??????????????д?????????
????????????????????????????????????????????????н?????????
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
???????????????????????????????????????????е???????к???????????е???????????????????????????????????????????????????????????
????2.2 as-if-serial????
????as-if-serial?????????????????????????????????????????????ж???????????????????н??????????????????runtime ?????????????????as-if-serial???塣
??????????
????[java]view plaincopy
????print?
????doublepi=3.14;//A doubler=1.0;//B doublearea=pi*r*r;//C
???????????????????????????????????????

??????????????A??C?????????????????????B??C??????????????????????????????е?????????У?C???????????A??B????棨C???A??B????棬??????????????????A??B??????????????????????????????????????????A??B???????????????ó??????????????

????as-if-serial??????????????????????????as-if-serial????????????runtime ?????????????д???????????????????????t??????????????????????????е??as-if-serial?????????????????贛?????????????????????贛?????????????