正文

volatile-volatile關鍵字的作用

xinfeng335
文章最后更新時間2025年02月05日,若文章內容或圖片失效,請留言反饋!

大家好,今天小編關注到一個比較有意思的話題,就是關于volatile的翻譯問題,于是小編就整理了4個相關介紹volatile的解答,讓我們一起看看吧。

volatile-volatile關鍵字的作用
(圖片來源網絡,侵刪)

c語言volatile是什么意思?

volatile的本意是一般有兩種說法。

1.“暫態(tài)的

2.“易變的。這兩種說法都有可行。一個定義為volatile的變量是說這變量可能會被意想不到的改變,這樣,編譯器就不會去假設這個變量的值了。優(yōu)化器在用到這個變量時必須每次都小心地重新讀取這個變量的值,而不是使用保存在寄存器里的備份。

synchronizedicon 和 volatile 的區(qū)別是什么?

1,作用的位置不同
synchronized是修飾方法,代碼塊。
volatile是修飾變量。

2,作用不同
synchronized,可以保證變量修改的可見性及原子性,可能會造成線程的阻塞;synchronized在鎖釋放的時候會將數據寫入主內存,保證可見性;
volatile僅能實現變量修改的可見性,但無法保證原子性,不會造成線程的阻塞;volatile修飾變量后,每次讀取都是去主內存進行讀取,保證可見性

volatile和synchronized的區(qū)別?

volatile和synchronized區(qū)別在于鎖定機制不同。

volatile是一種語言層面的實現,它有助于確保線程可以訪問最新數據,但沒有鎖定機制,以保持狀態(tài)正確性。synchronized是一種加強Main Memory狀態(tài)可見性的語言特性,它同步多線程之間的可見性,使用鎖機制以保持狀態(tài)可見性,并確保線程可以按正確的順序執(zhí)行。

使用volatile后緩存還有用嗎?

使用volatile后緩存還是有用的

volatile禁用緩存并不是說真正的不緩存,而是讓緩存無效來保證可見性。這里我么看下在x86處理器下通過工具獲取JIT編譯器生成的匯編指令。

因為volatile的關系,多了個lock指令,lock指令會讓處理器行為發(fā)生變化:
1,將處理器緩存行的數據寫回到系統(tǒng)內存。
2,這個寫回到內存的操作一旦發(fā)生,就會導致其他CPU里的該數據的緩存無效。

到此,以上就是小編對于volatile的翻譯問題就介紹到這了,希望介紹關于volatile的4點解答對大家有用。

-- 展開閱讀全文 --