共計(jì) 430 個(gè)字符,預(yù)計(jì)需要花費(fèi) 2 分鐘才能閱讀完成。
在 Java 中,volatile 關(guān)鍵字有以下語法規(guī)則:
- volatile 關(guān)鍵字用于標(biāo)記一個(gè)變量,表示該變量是易變的,即可能被多個(gè)線程同時(shí)修改。
- volatile 關(guān)鍵字只能用于修飾類的成員變量和靜態(tài)變量,不能修飾局部變量。
- volatile 關(guān)鍵字不能與 final 關(guān)鍵字一起使用,因?yàn)?final 關(guān)鍵字表示不可變性,與易變性相矛盾。
- 被 volatile 修飾的變量在每次被線程訪問時(shí),都強(qiáng)制從主存中讀取最新的值,而不是使用緩存中的值,同時(shí)對(duì)該變量的修改也會(huì)立即寫回主存。
- volatile 關(guān)鍵字保證了可見性,即一個(gè)線程對(duì) volatile 變量的修改對(duì)其他線程是可見的,避免了多個(gè)線程之間的數(shù)據(jù)不一致性問題。
- volatile 關(guān)鍵字并不能保證原子性,即不能保證多個(gè)線程同時(shí)對(duì) volatile 變量進(jìn)行讀取和寫入操作時(shí)的線程安全性,如果需要保證原子性,需要使用 synchronized 關(guān)鍵字或者使用原子類(如 AtomicInteger)等其他線程同步機(jī)制。
丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!
正文完