????????????????
????????????и???????????????
?????漲JVM?????????С?????
????????????????????Happens-Before??????????????????????????????
????????????????????????????Щ????????????????????
????????????Happens-Before ???????????????????ɡ?
????????????Synchronized-with ??????????????????
??????????
????1.???????????????????????????
????2.volatile????д?????????????????
????3.??A???B????????????A??B????????
????4.??????A??????B??????A??B????????
????Java??????????????Щ??????????Щ?????????????????????????????????????????????????????
????????????
???????????????????????
??????????????????????????
????????????????????????????????????????????????????????????? -- ???????????Щ????????????????????????????????????????????????????????????????????????????????
?????????????????????????????????????????“???”?汾??
????????????????????????????????????????????????????????????????????ó???????????????????????????
???????????????????
?????????????????????????????????????????“???”?汾??
???????????????????????е??????
???????????д????????????????????
???????????
??????????????????????????????????????????????????????????????????????????????????????? Java ??????漲?? JVM ?????С??????????д??????????????????????
??????????????????????????????????????????????????棬????????????????Э????????????? A д?????????? V????????????? B ??????? V ???????????????£???? B ???????????????? A д????????
?????????? A ???????????? V ???浽??????С?
?????????? A ???????????? V ???浽?????????У?????????????μ???????????
?????????? B ???????????????б??? V ??????
????Happens-before ???
????happens-before ?????????????? A ????? B ???? happens-before ?????????? A ??ж?????????????? B ??????????????????δ?? happens-before ????JVM ?????????????????????
??????????????????? ConcurrentHashMap ?й?? happens-before ???????
??????????????????????У????ж??? A ????????? B ??????????е?????? A ?? happens-before ???????е????????? B??
???????????????????????????????? happens-before ??????????????????????????
????Volatile ?????????? Volatile ???д????? happens-before ????????????? Volatile ?????????
?????????????? A happens-before ?? B???? B happens-before C???? A happens-before C??