??????????????JAVA?????????????????????????£????巽????????
???????????б?????????????????????????????????????????????????
???????????У???????????????MyClass.loop()????????????????????????????MyClass.setValue(100)??????????????????????????????????????
???????????
????public class MyClass{
????private static final String TAG="MyClass";
????private static int mValue=0;
????public static void setValue(int n){
????mValue=n;
????}
????public static void loop(){
????int value;
????while(value!=100){
????try{
????Log.i(TAG??"Value is "+value);
????Thread.sleep(1000);
????}catch(Exception e){
????}
????}
????}
????}
?????????????????????????
??????????synchronized?????
????public class MyClass{
????private static final String TAG="MyClass";
????private static int mValue=0;
????public static synchronized void setValue(int n){
????mValue=n;
????}
????public static synchronized int getValue(){
????return mValue;
????}
????public static void loop(){
????int value;
????while((value=getValue())!=100){
????try{
????Log.i(TAG??"Value is "+value);
????Thread.sleep(1000);
????}catch(Exception e){
????}
????}
????}
????}
???????????volatile?????
????public class MyClass{
????private static final String TAG="MyClass";
????private static volatile int mValue=0;//???volatile?????
????public static void setValue(int n){
????mValue=n;//?????mValue+=n????????????????????????synchronized
????}
????public static void loop(){
????int value;
????while(value!=100){
????try{
????Log.i(TAG??"Value is "+value);
????Thread.sleep(1000);
????}catch(Exception e){
????}
????}
????}
????}
????value++?????????value=1???????volatile????????????????????????????Щ?????????????????????????????synchronized?????
?????????synchronized???е???????????????????????????????????????????????????????????????????????????????????????????д????????????????????????????????