??????????

????????г??????????????????????????????????????????????????????????????

????1??????????????????????????????????????????????£????????°?????????????

????2????????е????????????????????????????м?????Instruction-Level Parallelism?? ILP??????????????????С????????????????????????????????????????????????????

????3????????????????????????????????/д????????????ü????洢???????????????????????С?

??????java????????????е???????У?????????????????????

??????????1???????????????2??3?????????????????Щ?????????????????????????????????????????????JMM?????????????????????????????????????????????е???????????????????????????????????JMM????????????????????java??????????????????????????????????????????memory barriers??intel????memory fence?????????????????????????????????????????????????е????????????????????

????JMM??????????????????????????????????????????????????????????????????????????????????????????????????μ????????????

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

?????????????????д????????????????????д????????д??????????????????????????У??????????????????????????????????д??????????????????????????????????????д??????????????д???????ж????????????д????????????????????á????д???????????????????????????????д??????????????????????????????????????????????????????????????????????????????/д???????????????????????????????/д?????????£???????????????????????

 

Processor A Processor B

a = 1; //A1
x = b; //A2

b = 2; //B1
y = a; //B2

???????a = b = 0
????????????к????????x = y = 0

???????賬????A???????B???????????????????????????????x = y = 0????????????????????????

????????????A???????B??????????????д???????д????????A1??B1????????????ж????????????????A2??B2???????????д???????б????????????μ?????У?A3??B3??????????????????????????????x = y = 0??????

??????????????????????????????????????A???A3??????????д????????д????A1???????????????????????A?????????????????A1->A2?????????????????????????A2->A1?????????????A??????????????????????????B????????????A?????????????????