volatile關鍵字的作用之一不讓編譯器優(yōu)化(c volatile關鍵字的作用)

發(fā)布時間:2024-01-27
本文為大家介紹volatile關鍵字的作用之一不讓編譯器優(yōu)化(c volatile關鍵字的作用),下面和小編一起看看詳細內容吧。
volatile 通常用于java 并發(fā)編程,以保持內存可見性并防止指令重新排序。內存可見性(memory visibility):所有線程都能看到共享內存的最新狀態(tài);防止指令重排:在基于偏序關系的happens-before內存模型中,指令重排技術極大地提高了程序執(zhí)行效率,但也引入了一些問題。
volatile 有維護內存可見性的特殊規(guī)則:讀取、加載和使用操作必須連續(xù)發(fā)生;分配、存儲和寫入操作必須連續(xù)發(fā)生;每次讀取前必須從主存中刷新最新值;立即同步回主內存。
也就是說,被volatile關鍵字修飾的變量,隨時看到它的最新值。線程1 中變量v 的最新修改對線程2 可見。
volatile防止指令重排策略:在每個volatile寫操作前插入一個storestore屏障;在每次易失性寫入操作后插入一個storeload 屏障;在每個易失性讀取操作之后插入一個loadload 屏障;在每個易失性讀取操作之后插入一個loadload 屏障;在易失性讀取操作之后插入一個loadstore 屏障。
注意:這樣的指令重排序問題只發(fā)生在happens-before 內存模型中。
好了,volatile關鍵字的作用之一不讓編譯器優(yōu)化(c volatile關鍵字的作用)的介紹到這里就結束了,想知道更多相關資料可以收藏我們的網站。
上一個:索尼游戲機黑屏怎么辦,索尼m27i黑屏怎么辦
下一個:發(fā)電站水文監(jiān)測系統-風途出品-礦用井下水文監(jiān)測系統

胡南茶文化的歷史發(fā)展
茶葉流通之官茶
win7家庭版如何更改桌面圖標位置(win7家庭版如何更改桌面圖標顏色)
大白菜系統遷移教程,大白菜有系統轉移功能嗎機械轉到固態(tài)硬盤里
balancesystems聲波傳感器(意大利品牌質量保障細節(jié)決定成?。?/a>
PGX系列智能光照培養(yǎng)箱的智能優(yōu)點
拿結婚證需要什么手續(xù)
電腦十大耐玩網絡游戲,哪些是耐玩的網絡游戲
油茶主要病害空間分布格局規(guī)律的研究
RC1206FR-07430RL,1206 430Ω 1% 1/4W 電阻
十八禁 网站在线观看免费视频_2020av天堂网_一 级 黄 色 片免费网站_绝顶高潮合集Videos