国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

【java】知識系譜-基礎篇-線程-volatile

_ivan / 2735人閱讀

摘要:每個會緩存主存的共享變量,從而提高處理效率。為當前緩存行加入緩存一致性協議。任何修改,其他線程是可見的。修飾的變量還是會緩存的,只是通過一系列處理保證了所有線程看到這個變量的值是一致的

java并發編程實戰對volatile的解釋就是:當一個域聲明為valatile類型后,編譯器與運行時會監視這個變量:它是共享的,而且對它的操作不會與其他的內存操作一起被重排序。volatile變量不會緩存在寄存器或者緩存在對其他處理器隱藏的地方。

表示呵呵噠。

官方解釋:如果一個字段被聲明成volatile,java線程內存模型確保所有線程看到這個變量的值是一致的。
1.jvm對volatile變量做了什么事情?

在volatile聲明的變量進行寫操作的時候,JVM干了一件事,在前面加上了Lock為前綴的匯編代碼。
我們先看下多處理器的高速緩存,再說加Lock會發生什么。
每個CPU會緩存主存的共享變量,從而提高處理效率。所以共享變量在每個CPU上都會有一份緩存。

2.Lock為前綴的匯編代碼會發生什么?

多處理器下,Lock為前綴的匯編代碼發生下面兩件事情。
1.讓當前緩存行寫回到主存中。
2.為當前緩存行加入緩存一致性協議。(效果就是:其他處理器會將該緩存行置為失效)

3.什么是緩存一致性協議

MESI協議。確保多處理器下緩存是一致的。具體的協議內容可以自行百度,監聽+廣播+狀態的控制去實現的。

4.針對volatile的內存語義、內存屏障這篇說的很好,直接上連接了

http://www.importnew.com/2786...
寫的時候加了StroeLoad內存屏障,StroeLoad基于Lock指令實現的,所以編譯后會有Lock為前綴的指令

5.總結

以上說明了volatile的可見性。任何修改,其他線程是可見的。同時也說明的java并發編程實戰的解釋不準確,甚至是錯誤的。volatile修飾的變量還是會緩存的,只是通過一系列處理保證了所有線程看到這個變量的值是一致的

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/69033.html

相關文章

  • java知識系譜-基礎-線程-發布、逸出

    摘要:引用逸出基于外部方法發布對象引出引用逸出問題。并發編程實戰的提到私有構造函數公共的工廠方法解決可能逸出的問題。同理在構造函數可以新建線程,當不要。下面代碼就是錯誤的可以在構造函數中但是不要 java并發編程實戰的解釋,不夠詳細,尤其this引用逸出讓人理解有些費解,java并發編程實戰里面的內容就直接拷貝過來 發布:使對象能夠在當前作用域之外的代碼中使用 逸出:當某個不該被發布的對象被...

    時飛 評論0 收藏0
  • 后端知識- 收藏集 - 掘金

    摘要:常見的八大排序算法,他們之間關系如下被人忽視的面向對象的六大原則后端掘金前言作為文集的第一篇,我覺得有必要介紹一下大概的寫作規劃。 Java多線程干貨系列—(四)volatile關鍵字| 掘金技術征文 - 掘金原本地址:Java多線程干貨系列—(四)volatile關鍵字博客地址:http://tengj.top/ 前言 今天介紹下volatile關鍵字,volatile這個關鍵字可能...

    Youngdze 評論0 收藏0
  • 后端知識- 收藏集 - 掘金

    摘要:常見的八大排序算法,他們之間關系如下被人忽視的面向對象的六大原則后端掘金前言作為文集的第一篇,我覺得有必要介紹一下大概的寫作規劃。 Java多線程干貨系列—(四)volatile關鍵字| 掘金技術征文 - 掘金原本地址:Java多線程干貨系列—(四)volatile關鍵字博客地址:http://tengj.top/ 前言 今天介紹下volatile關鍵字,volatile這個關鍵字可能...

    scola666 評論0 收藏0
  • Javag工程師成神之路(2019正式版)

    摘要:結構型模式適配器模式橋接模式裝飾模式組合模式外觀模式享元模式代理模式。行為型模式模版方法模式命令模式迭代器模式觀察者模式中介者模式備忘錄模式解釋器模式模式狀態模式策略模式職責鏈模式責任鏈模式訪問者模式。 主要版本 更新時間 備注 v1.0 2015-08-01 首次發布 v1.1 2018-03-12 增加新技術知識、完善知識體系 v2.0 2019-02-19 結構...

    Olivia 評論0 收藏0
  • 并發編程的藝術

    摘要:假設不發生編譯器重排和指令重排,線程修改了的值,但是修改以后,的值可能還沒有寫回到主存中,那么線程得到就是很自然的事了。同理,線程對于的賦值操作也可能沒有及時刷新到主存中。線程的最后操作與線程發現線程已經結束同步。 很久沒更新文章了,對隔三差五過來刷更新的讀者說聲抱歉。 關于 Java 并發也算是寫了好幾篇文章了,本文將介紹一些比較基礎的內容,注意,閱讀本文需要一定的并發基礎。 本文的...

    curlyCheng 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<