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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

轻量锁volatile

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

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

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

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

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

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

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

????????1)將當前處理器緩存行的數據寫回到系統內存。

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

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

volatile的實現原則:

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

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

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

總結

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

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