日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

轻量锁volatile

發(fā)布時間:2023/12/16 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 轻量锁volatile 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

volatile是輕量級的讀鎖,它在多處理器開發(fā)中保證了共享變量的可見性

volatile保證讀的準確性,只能修飾屬性(變量)

public class liN {private volatile int a = 1;}

可見性:在多線程高速緩存時,一個線程修改后,volatile將其他線程也進行修改,保證修改后其他線程讀到的數(shù)據(jù)是修改后的

如果一個字段被聲明成volatile,java線程模型確保所有線程看到這個變量的值是一致的

????????有volatile變量修飾的共享變量進行寫操作時會多出一行匯編代碼,通過查IA-32架構軟件開發(fā)者收手冊可知,Lock前綴的命令在多核處理器下會引發(fā)兩件事情:

????????1)將當前處理器緩存行的數(shù)據(jù)寫回到系統(tǒng)內存。

????????2)這個寫回內存的操作會使在其他CPU里緩存了該內存地址的數(shù)據(jù)無效。

????????在多處理器下,為了保證各個處理器的緩存是一致的,就會實現(xiàn)緩存一 致性協(xié)議,每個處理器通過嗅探在總線上傳播的數(shù)據(jù)來檢查自己緩存的值是不是過期了,當 處理器發(fā)現(xiàn)自己緩存行對應的內存地址被修改,就會將當前處理器的緩存行設置成無效狀 態(tài),當處理器對這個數(shù)據(jù)進行修改操作的時候,會重新從系統(tǒng)內存中把數(shù)據(jù)讀到處理器緩存 里。

volatile的實現(xiàn)原則:

1)Lock前綴指令會引起處理器緩存回寫到內存中,緩存一致性機制會阻止同時修改兩個以上處理器緩存的內存區(qū)域數(shù)據(jù)。

2)一個處理器的緩存回寫到內存會導致其他處理器的緩存無效,處理器使用嗅探技術保證它的內部緩存、系統(tǒng)內存和其他處理器的緩存的數(shù)據(jù)在總線上保持一致

????????除了volatile,Java并發(fā)編程中應用較多的 是synchronized

總結

以上是生活随笔為你收集整理的轻量锁volatile的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。