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

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

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

    騎士の圣殿

     

    Java中的volatile關(guān)鍵字

    關(guān)于volatile
    我們知道,在Java中設(shè)置變量值的操作,除了long和double類型的變量外都是原子操作,也就是說,對于變量值的簡單讀寫操作沒有必要進(jìn)行同步。這在JVM 1.2之前,Java的內(nèi)存模型實現(xiàn)總是從主存讀取變量,是不需要進(jìn)行特別的注意的。而隨著JVM的成熟和優(yōu)化,現(xiàn)在在多線程環(huán)境下volatile關(guān)鍵字的使用變得非常重要。在當(dāng)前的Java內(nèi)存模型下,線程可以把變量保存在本地內(nèi)存(比如機(jī)器的寄存器)中,而不是直接在主存中進(jìn)行讀寫。這就可能造成一個線程在主存中修改了一個變量的值,而另外一個線程還繼續(xù)使用它在寄存器中的變量值的拷貝,造成數(shù)據(jù)的不一致。要解決這個問題,只需要像在本程序中的這樣,把該變量聲明為volatile(不穩(wěn)定的)即可,這就指示JVM,這個變量是不穩(wěn)定的,每次使用它都到主存中進(jìn)行讀取。一般說來,多任務(wù)環(huán)境下各任務(wù)間共享的標(biāo)志都應(yīng)該加volatile修飾。
    Volatile修飾的成員變量在每次被線程訪問時,都強(qiáng)迫從共享內(nèi)存中重讀該成員變量的值。而且,當(dāng)成員變量發(fā)生變化時,強(qiáng)迫線程將變化值回寫到共享內(nèi)存。這樣在任何時刻,兩個不同的線程總是看到某個成員變量的同一個值。 

    Java語言規(guī)范中指出:為了獲得最佳速度,允許線程保存共享成員變量的私有拷貝,而且只當(dāng)線程進(jìn)入或者離開同步代碼塊時才與共享成員變量的原始值對比。 

    這樣當(dāng)多個線程同時與某個對象交互時,就必須要注意到要讓線程及時的得到共享成員變量的變化。 

    而volatile關(guān)鍵字就是提示VM:對于這個成員變量不能保存它的私有拷貝,而應(yīng)直接與共享成員變量交互。 

    使用建議:在兩個或者更多的線程訪問的成員變量上使用volatile。當(dāng)要訪問的變量已在synchronized代碼塊中,或者為常量時,不必使用。 

    由于使用volatile屏蔽掉了VM中必要的代碼優(yōu)化,所以在效率上比較低,因此一定在必要時才使用此關(guān)鍵字。 

    posted on 2007-11-21 11:12 最後の騎士 閱讀(5049) 評論(2)  編輯  收藏 所屬分類: java技術(shù)

    評論

    # re: Java中的volatile關(guān)鍵字 2011-09-20 12:16 corvin

    我看了很多篇文章,你的是寫的最通俗易懂的,初學(xué)者需要你這樣的會把自己的理解講的很清晰易懂的導(dǎo)師  回復(fù)  更多評論   

    # re: Java中的volatile關(guān)鍵字 2013-01-23 20:17 小源求學(xué)

    嗯,這篇文章寫得不錯哦  回復(fù)  更多評論   

    導(dǎo)航

    統(tǒng)計

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    文章分類

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产特黄特色的大片观看免费视频| 亚洲欧洲国产精品久久| 亚洲成a∧人片在线观看无码| 国产妇乱子伦视频免费| 久久国产亚洲电影天堂| 免费无码中文字幕A级毛片| 亚洲AV无码乱码国产麻豆穿越| 免费无码黄网站在线看| 亚洲国产高清人在线| 1000部啪啪毛片免费看| 亚洲国产精品日韩在线观看| 在线观看免费人成视频色| 亚洲国产日韩在线成人蜜芽 | 久久精品无码专区免费| 久久亚洲国产精品123区| 国产免费黄色无码视频| 亚洲国产精品无码一线岛国| 免费国产污网站在线观看15| 亚洲免费人成视频观看| 青青草国产免费久久久下载| 曰批全过程免费视频免费看 | 中文字幕精品亚洲无线码二区| 99精品视频免费| 亚洲精品视频在线播放| 噼里啪啦电影在线观看免费高清| 亚洲欧美日韩中文二区| 亚洲第一黄片大全| 日韩在线不卡免费视频一区| 国产精品亚洲精品青青青| 免费在线观看理论片| 中文字幕久精品免费视频| 国产99在线|亚洲| 亚洲视频人成在线播放| 51在线视频免费观看视频| 亚洲国产精品自在自线观看| 中文字幕中韩乱码亚洲大片 | 成人人免费夜夜视频观看| 三级片免费观看久久| 亚洲AV一二三区成人影片| 久久久久久一品道精品免费看| 亚洲精品视频观看|