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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

为什么不使用volatile,其它线程也能得到当前线程修改后的值,不使用volatile也不存在可见性问题?原来解决可见性问题不一定需要volatile,println也可以

發布時間:2025/3/19 编程问答 23 豆豆

1. 為什么不使用volatile,其它線程也能得到變量修改后的值

實驗代碼分析

①初始變量a=true,b=false;

②一個線程判斷a或者b是否被改為相應邏輯,如果是,那么輸出信息。

③修改a和b的線程。

實驗結果分析:不是說沒有volatile修飾的變量存在可見性問題嗎,怎么可以得到另一個線程修改的值,不存在可見性問題嗎??

原因:其實可見性問題的造成就是因為各自從緩存取數據,而不從內存取數據,如果緩存都沒有數據,大家都使用內存的值,那么就不存在可見性問題。這里不存在可見性問題的原因就是當前變量還沒有被放入緩存,我們可以加上一點休眠,讓程序有時間把數據放入緩存,然后測試,如下。

其它博客有提到,說在線程中使用的睡眠會釋放cpu執行權,然后CPU有時間去更新工作緩存和主存內容。那我這邊通過一個簡單的for循環,讓CPU沒有時間去同步緩存和主存。

2. 為什么不使用volatile,其它線程還能得到變量修改后的值

實驗代碼分析

① 初始變量a=0,b=false;

②然后,一個線程判斷?b 的值是否為false,是false那么循環輸出“b is false and a is ”信息,直到 b 的值變為true,輸出“b is true and a is”信息結束線程;

③然后延遲2ms,為了讓后面的線程晚于前面線程執行;

④最后,另一個線程會修改a=1,b=true。

實驗結果分析:首先控制臺輸出了一句“b is false and a is 0”,因為初始值a=0,b=false,所以正確;但是后面控制臺輸出了一句“b?is true and a is 1”,為什么???不是說沒有volatile修飾的變量是會存在可見性問題的嗎?不是說一個線程修改的值,其它線程是得不到修改后的值嗎??怎么這邊能得到呢?

在分析之前,我們需要記住兩點:第一,并發編程存在可見性問題;第二:可見性問題并不是只能通過volatile修飾來解決,也就是說——沒有volatile修飾的變量不一定存在可見性問題

原因:既然并發編程存在可見性問題,而且這邊沒有volatile修飾,那么可見性問題是怎么解決的呢?其實這邊可見性問題是通過System.out.println語句解決的,也就是System.out.println語句觸發了MESI緩存一致性協議。我們這邊將System.out.println注釋后,運行結果出現了可見性問題,可驗證原先是System.out.println解決了可見性問題,運行結果及分析如下。

3. 其實System.out.println是通過synchronized關鍵字觸發MESI緩存一致性協議,從而解決可見性問題,如下圖。

總結:發生可見性問題,需要兩個條件,①各線程操作數據是在緩存中操作,才會存在緩存不一致;②沒有觸發緩存一致性協議。

總結

以上是生活随笔為你收集整理的为什么不使用volatile,其它线程也能得到当前线程修改后的值,不使用volatile也不存在可见性问题?原来解决可见性问题不一定需要volatile,println也可以的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 在线艹| 成人啪啪18免费游戏链接 | 污污视频免费网站 | 色噜噜狠狠成人中文 | 日韩欧美视频二区 | 日韩黄色免费视频 | 香蕉在线网站 | 亚洲成人三级 | 大尺度做爰无遮挡露器官 | 后进极品美女圆润翘臀 | 国产农村妇女精品一区二区 | 六月色婷婷 | 国产成人自拍一区 | 成人免费av | 日韩一级片在线播放 | 国产干b | 97视频一区二区 | 欧美黑吊大战白妞 | 久久久国产一区二区三区 | 秋霞自拍 | 女人性做爰100部免费 | xxsm.com| 欧美色图首页 | 丝袜 亚洲 另类 欧美 重口 | 麻豆影视在线观看 | 高跟91娇喘| 麻豆chinese极品少妇 | 成人一区三区 | 国产又粗又长又硬免费视频 | 亚洲免费影院 | 神马香蕉久久 | 欧美乱妇狂野欧美在线视频 | 少妇熟女一区 | 狼性av懂色av禁果av | 国产精品视频一区二区在线观看 | 国产91丝袜在线播放九色 | 亚洲人成人无码网www国产 | 中文字幕亚洲国产 | 黄色在线资源 | 麻豆一区二区三区精品视频 | 黄色三级图片 | 欧美 日韩 精品 | 日韩在线导航 | 欧美日韩电影一区 | 亚洲播放器 | 免费看黄色片网站 | 久草福利资源 | 久久成人久久爱 | 国产精品久久久久毛片 | 欧美日韩理论 | 玖玖精品在线视频 | 日韩av一级片 | xxxx日本免费 | 久久精品欧美一区 | 亚洲天堂影院在线观看 | 黄色一级网址 | 久久伊人中文字幕 | 精品人妻一区二区三区四区久久 | 91天天爽| 午夜免费视频网站 | 91精品网 | 中文字幕第31页 | a级片日本 | 草草屁屁影院 | 亚洲专区一区二区三区 | 国产精品无码一区二区无人区多人 | 国产精品视频免费在线观看 | 欧美一区一区 | 国产黄大片在线观看画质优化 | 人妻丰满熟妇av无码区免 | 欧美日韩中文字幕在线播放 | 国产网友自拍 | 少妇荡乳情欲办公室456视频 | 久久九九热视频 | 韩国久久久久 | 日本我不卡 | 欧美又粗又深又猛又爽啪啪九色 | 国产日韩不卡 | 五月天激情四射 | 91禁在线动漫 | 91在线精品一区二区三区 | 9999久久久久 | 久久国产加勒比精品无码 | www黄色av| 亚洲成年人av | 免费观看一级黄色片 | 国产精品1024 | 久久人人看 | 法国空姐电影在线 | 亚洲天堂区 | 日本网站在线 | 午夜精品久久久久久久99黑人 | 久一在线视频 | 能在线观看的av网站 | 狠狠干天天色 | 奇米精品一区二区三区在线观看一 | 精品乱人伦一区二区三区 | 视频一区二区在线播放 | 国产在线视频网址 |