java 多線程內(nèi)存可見(jiàn)性問(wèn)題(volatile)

  • 摘抄自(http://tutorials.jenkov.com/java-concurrency/volatile.html

  • 機(jī)翻
    完全不穩(wěn)定的可見(jiàn)性保證
    實(shí)際上,Java volatile 的可見(jiàn)性保證超出了 volatile 變量本身。 可見(jiàn)性保證如下:

  • 如果線程 A 寫入一個(gè) volatile 變量,而線程 B 隨后讀取了同一個(gè) volatile 變量,那么線程 A 在寫入 volatile 變量之前對(duì)線程 A 可見(jiàn)的所有變量,在線程 B 讀取 volatile 變量之后也將對(duì)線程 B 可見(jiàn)。

  • 如果線程 A 讀取一個(gè) volatile 變量,那么在讀取 volatile 變量時(shí)線程 A 可見(jiàn)的所有變量也將從主存儲(chǔ)器中重新讀取。

  • 原文
    Full volatile Visibility Guarantee
    Actually, the visibility guarantee of Java volatile goes beyond the volatile variable itself. The visibility guarantee is as follows:

  • If Thread A writes to a volatile variable and Thread B subsequently reads the same volatile variable, then all variables visible to Thread A before writing the volatile variable, will also be visible to Thread B after it has read the volatile variable.

  • If Thread A reads a volatile variable, then all all variables visible to Thread A when reading the volatile variable will also be re-read from main memory.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本質(zhì) Java多線程安全問(wèn)題的本質(zhì)原因,有線程的寫操作。如果多個(gè)線程對(duì)同一資源進(jìn)行讀,是沒(méi)有問(wèn)題的。但如果一個(gè)線程...
    StephenLau閱讀 442評(píng)論 0 0
  • 最近在重新梳理多線程,同步相關(guān)的知識(shí)點(diǎn)。關(guān)于 volatile 關(guān)鍵字閱讀了好多博客文章,發(fā)現(xiàn)質(zhì)量高適合小白的不多...
    清十郎sama閱讀 1,972評(píng)論 2 24
  • 多線程可能對(duì)應(yīng)著多個(gè) CPU,多個(gè) CPU 對(duì)應(yīng)著多套緩存(L1, L2, L3, 寄存器)。緩存的數(shù)據(jù)可能和內(nèi)存...
    riveraiyanzi閱讀 245評(píng)論 0 0
  • 上次線程池已經(jīng)說(shuō)過(guò)了,從今天開(kāi)始一起了解下JVM內(nèi)存模型詳解。 (一)容易誤解的部分 老鐵很容易把JAVA的內(nèi)存區(qū)...
    IT人故事會(huì)閱讀 363評(píng)論 0 1
  • 我是黑夜里大雨紛飛的人啊 1 “又到一年六月,有人笑有人哭,有人歡樂(lè)有人憂愁,有人驚喜有人失落,有的覺(jué)得收獲滿滿有...
    陌忘宇閱讀 8,832評(píng)論 28 54

友情鏈接更多精彩內(nèi)容