日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

volatile关键字有什么用

發(fā)布時(shí)間:2023/11/29 编程问答 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 volatile关键字有什么用 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

問題:volatile關(guān)鍵字有什么用

在工作的時(shí)候,我碰到了volatile關(guān)鍵字。但是我不是非常了解它。我發(fā)現(xiàn)了這個(gè)解釋

這篇文章已經(jīng)解釋了問題中的關(guān)鍵字的細(xì)節(jié)了,你們?cè)?jīng)用過它嗎或者見過正確使用這個(gè)關(guān)鍵字的樣例

回答

  • Java中同步的實(shí)現(xiàn)大多是通過關(guān)鍵字synchronized和volatile和鎖

  • 在Java里面,我們沒有 synchronized 的變量。對(duì)一個(gè)變量使用 synchronized 關(guān)鍵字是非法的,會(huì)導(dǎo)致編譯錯(cuò)誤的。我們可以使用volatile變量而不是synchronized變量,volatile變量會(huì)讓JVM里面的線程去主存中讀取volatile 變量的值并且不在本地副本里面緩存

  • 如果一個(gè)變量沒有被多個(gè)線程共享,那就不需要使用volatile關(guān)鍵字了。

  • volatile使用的例子:

    public class Singleton {private static volatile Singleton _instance; // volatile variablepublic static Singleton getInstance() {if (_instance == null) {synchronized (Singleton.class) {if (_instance == null)_instance = new Singleton();}}return _instance;} }

    我們?cè)诘谝淮问褂玫臅r(shí)候才創(chuàng)建這個(gè)實(shí)例

    如果我們沒有給這個(gè)變量加volatile,那么創(chuàng)建單例的那個(gè)線程就沒辦法和其他線程通信。如果線程A在創(chuàng)建一個(gè)單例,在創(chuàng)建完單例以后,cpu炸了,那么其他線程就看不到這個(gè)實(shí)例了,它們就覺得這個(gè)實(shí)例還是空的。

    為什么會(huì)發(fā)生這種情況?因?yàn)樽x線程沒有加鎖,直到寫線程來到了同步代碼塊,內(nèi)存沒有被同步,實(shí)例的值還未被刷新到主存里。在 Volatile關(guān)鍵字以后,這就由Java自身處理,這樣的更新是對(duì)所有的讀線程可見的

    Conclusion: volatile 關(guān)鍵字也可以用于多個(gè)線程在主存的通信

    不使用volatile的例子:

    public class Singleton{ private static Singleton _instance; //without volatile variablepublic static Singleton getInstance(){ if(_instance == null){ synchronized(Singleton.class){ if(_instance == null) _instance = new Singleton(); } } return _instance; }

    文章翻譯自Stack Overflow:https://stackoverflow.com/questions/106591/what-is-the-volatile-keyword-useful-for

    總結(jié)

    以上是生活随笔為你收集整理的volatile关键字有什么用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。