<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 方偉的博客 閱讀(316) 評論(0)  編輯  收藏 所屬分類: J2EE相關

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


    網站導航:
     
    主站蜘蛛池模板: 国产亚洲欧美在线观看| 亚洲午夜视频在线观看| 亚洲av无码一区二区三区人妖| av无码久久久久不卡免费网站| 亚洲高清不卡视频| 91麻豆最新在线人成免费观看| 亚洲免费电影网站| 无码一区二区三区免费视频 | 亚洲一区二区三区久久久久| 中国人xxxxx69免费视频| 亚洲网址在线观看| 毛片在线看免费版| 亚洲av综合日韩| 亚洲午夜av影院| 久久久99精品免费观看| 91嫩草亚洲精品| 国产成人一区二区三区免费视频| 亚洲a∨无码一区二区| 亚洲精品尤物yw在线影院| 中文字幕无码毛片免费看| 亚洲人成影院在线| 最近免费中文字幕视频高清在线看 | 最近免费中文字幕高清大全 | 亚洲av综合av一区二区三区| 免费A级毛片无码A| 国产在线观a免费观看| 亚洲福利视频一区二区三区| 四虎影视免费在线| 一级有奶水毛片免费看| 亚洲综合激情九月婷婷| 国产精品高清全国免费观看| 中文字幕无码毛片免费看| 亚洲一区二区三区免费在线观看| vvvv99日韩精品亚洲| 国产免费无码AV片在线观看不卡| 亚洲一区免费在线观看| 久久精品亚洲男人的天堂| 动漫黄网站免费永久在线观看| 特级毛片aaaa级毛片免费| 亚洲嫩草影院在线观看| 亚洲精品视频免费|