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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

并发编程(一)__volatile关键字

發布時間:2025/7/25 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 并发编程(一)__volatile关键字 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

volatile 關鍵字:

          當多個線程進行操作共享數據時,可以保證內存中的數據可見。
        ? ??? 相較于 synchronized 是一種較為輕量級的同步策略。

? ? ? ? ? ? ? ? ? ? ? ? ? ?注意:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?1. volatile 不具備“互斥性”:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?互斥性:多個線程訪問時,只能有一個線程可以拿到鎖。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2. volatile 不能保證變量的“原子性”

原子性問題解釋

      

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? i++ 的原子性問題:i++ 的操作實際上分為三個步驟“讀-改-寫”
?    ? ? ? ? ? ? ? ? ?舉例:

? ? ? ? ? ? ? ? ? ? ? ? ? ?   int i = 10;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?i = i++; //10,結果為10


      下面是計算機底層的運算
      ?int temp = i;
?      i = i + 1;
?      i = temp;


      ?從以上三步可以看出,結果 i=10, 這是計算機底層的運算

      因為i++有讀改寫三步操作,所以volatile關鍵字在這里解決不了問題,volatile只是保證數據的都在主存中進行,
      當多線程進行同時訪問的時候,并不保證這三步操作具有一個同步性

轉載于:https://www.cnblogs.com/dreamHighMjc/p/8497053.html

總結

以上是生活随笔為你收集整理的并发编程(一)__volatile关键字的全部內容,希望文章能夠幫你解決所遇到的問題。

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