<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    方偉的博客
    j2ee技術、網絡、web等,同名的人真多,我的QQ是20025404
    posts - 21,comments - 14,trackbacks - 0
    以前一直沒在意,一直以為volatile修飾了就高枕無憂了,但其實不然,最簡單的一個場景:
    public class Counter {
     
        public volatile static int count = 0;
     
        public static void inc() {
     
            //這里延遲1毫秒,使得結果明顯
            try {
                Thread.sleep(1);
            } catch (InterruptedException e) {
            }
     
            count++;
        }
     
        public static void main(String[] args) {
     
            //同時啟動1000個線程,去進行i++計算,看看實際結果
     
            for (int i = 0; i < 1000; i++) {
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        Counter.inc();
                    }
                }).start();
            }
     
            //這里每次運行的值都有可能不同,可能為1000
            System.out.println("運行結果:Counter.count=" + Counter.count);
        }
    }

     這里運行結果依然不是期望的1000,主要原因簡單解釋如下:
     

    對于volatile修飾的變量,jvm虛擬機只是保證從主內存加載到線程工作內存的值是最新的

    例如假如線程1,線程2 在進行read,load 操作中,發現主內存中count的值都是5,那么都會加載這個最新的值

    在線程1堆count進行修改之后,會write到主內存中,主內存中的count變量就會變為6

    線程2由于已經進行read,load操作,在進行運算之后,也會更新主內存count的變量值為6

    導致兩個線程及時用volatile關鍵字修改之后,還是會存在并發的情況。

    posted on 2013-05-30 15:26 方偉的博客 閱讀(314) 評論(0)  編輯  收藏 所屬分類: J2EE相關

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲国产精品一区第二页| 国产一级做a爱免费视频| 亚洲精品你懂的在线观看| 特a级免费高清黄色片| 国产精品免费看久久久久| 亚洲av成人无码网站…| 日韩免费一区二区三区| 亚洲精品国产suv一区88| 午夜男人一级毛片免费| 亚洲高清乱码午夜电影网| 精品无码国产污污污免费| 久久无码av亚洲精品色午夜| 免费**毛片在线播放直播 | 另类免费视频一区二区在线观看| 久久精品国产亚洲5555| a级毛片免费完整视频| 亚洲AV无码专区国产乱码电影 | 美女裸免费观看网站| 亚洲伦乱亚洲h视频| GOGOGO免费观看国语| 亚洲成人精品久久| 久草在视频免费福利| 亚洲AV无码片一区二区三区| 亚洲福利视频一区二区| a级毛片免费在线观看| 91亚洲性爱在线视频| 欧洲美熟女乱又伦免费视频| 日韩在线视频播放免费视频完整版 | 久久国产精品2020免费m3u8| 精品亚洲A∨无码一区二区三区| 四虎1515hh永久久免费| 老司机午夜免费视频| 国产亚洲综合久久系列| 69av免费视频| 美女黄频免费网站| 久久精品国产亚洲AV无码娇色| 成人特黄a级毛片免费视频| 人妻仑刮八A级毛片免费看| 国产精品亚洲аv无码播放| 亚洲一区二区三区免费观看| 国产亚洲视频在线播放大全|