????Java???????Java Memory Model??
????Java???????JMM?????????Java?????????????JMM?????????????????и?????????????????????????н??????洢???????????ж??????????????????JMM?漲?????е???????洢????????У??????????????????????棬???????????б??????????????????????????渱????????????????????в??????????????????н??У???????????д??????е??????????????????????????????????????????????????????????ɡ?
????Volatile?????
???????????jdk??????????????????????д??????volatile????????Σ????????????????????????????????????????????ū????????????????????volatile?????????eɡ?
????????????????????volatile?????????????????????????????????????????????????????????????μ??????????????????????????????????????????volatile???????е?д???????????????????????????????????????volatile???????????????????????????volatile????????????????б???????????????????????????????
????/**
????*????20?????????????race????????10000???????????????????????????????
????*????race??????200000???????????н???С??200000??
????*
????*@author Colin Wang
????*
????*/
????public class VolatileTest{
????public static volatile int race=0;
????public static void increase(){
????race++;
????}
????private static final int THREADS_COUNT=20;
????public static void main(String[]args){
????Thread[]threads=new Thread[THREADS_COUNT];
????for(int i=0;i<THREADS_COUNT;i++){
????threads[i]=new Thread(new Runnable(){
????@Override
????public void run(){
????for(int i=0;i<10000;i++){
????increase();
????}
????}
????});
????threads[i].start();
????}
????while(Thread.activeCount()>1)
????Thread.yield();
????System.out.println(race);
????}
????}