????JMM?????

??????JMM??????????????????JMM??????????????????????

?????? ????????????????á???????????????????????????????????????????????????????д????

?????? ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

?????????????????????ì???????JSR-133??????????JMM????????????????????????????????????????????????????????????棬??????????????????????????????ɡ??????????????JSR-133????????????????

??????????????????????????????????????????

double pi  = 3.14;    //A
double r   = 1.0;     //B
double area = pi * r * r; //C

?????????????????????????????????happens- before?????

????1??A happens- before B??

????2??B happens- before C??

????3??A happens- before C??

????????A happens- before B??happens- before?????????A??????е??????B???????A????????????????B???????? ??????????????????????A??B????????????????????н?????????????????????????????????????????????????????????????????????????????????3??happens- before????У????2??3???????????1?????????????JMM??happens- before?????????????????????????

?????? ?????????н??????????

?????? ???????????н??????????

????JMM??????????????????????????????????

?????? ????????????н??????????JMM???????????????????????????????

?????? ??????????????н??????????JMM?????????????????????JMM????????????????

??????????JMM???????????

????????????????????

?????? JMM??????????happens- before????????????????????JMM??happens- before??????????????????????????????????????????????Щ????????????????????????????????????A happens- before B????

?????? JMM???????????????????????????????????????????????????????JMM?????????????????????????????????н????????????????????????????????????????????????????????С????磬???????????????μ???????????????????????????????????????????????????磬???????????????μ????????????volatile???????????????????????????????????????volatile???????????????????????????Щ????????????????н??????????????????Ч???