Ryan's Java world!

          something about Java and opensource!

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            51 Posts :: 25 Stories :: 59 Comments :: 0 Trackbacks

          在java 線程 3rd中3.2講到了一個少用的關鍵字 volatile.

          However, Java provides a more elegant solution: the volatile keyword. If a variable is marked as volatile, every time the variable is used it must be read from main memory. Similarly, every time the variable is written, the value must be stored in main memory. Since these operations are atomic, we can avoid the race condition in our example by marking our done flag as volatile.

          ?

          在tij中也有講述

          ?Thinking ? in?? java?? 的 ? 13.7 ? 范例 ? CanStop ? 里面有代碼 ?
          ? //Must ? be ? volatile: ?
          ? private ? volatile ? boolean ? stop ? = ? false; ?
          ? 這里boolean類型應該就已經是原子操作了,不需要再保證了。 ?
          ? ?
          ? 書里說 ? stop標志必須是volatile的,以便run()方法肯定看到他(否則的話,這個值可能本地緩存) ?
          ? ?
          ? 我猜想 ? volatile表示這個值可能被別的線程改變,所以被標志為volatile的變量,每次都是從存儲區中讀取變量對應的值,而不是在該線程中本地緩存的值。因為本地緩存的值不能及時反映其他線程對這個變量的影響。???
          ?


          在線程中 該關鍵字還是會用到的..

          posted on 2006-08-31 17:17 冰雨 閱讀(752) 評論(0)  編輯  收藏 所屬分類: Java

          JSF中文技術文摘
          主站蜘蛛池模板: 黔南| 元江| 云阳县| 长宁区| 河南省| 华宁县| 禹城市| 瑞昌市| 平舆县| 旌德县| 梅河口市| 滕州市| 简阳市| 仙游县| 南郑县| 兴仁县| 同江市| 安岳县| 阿巴嘎旗| 廉江市| 阜宁县| 合作市| 永吉县| 曲阜市| 临夏市| 密云县| 伊春市| 富锦市| 卫辉市| 竹溪县| 翁源县| 大悟县| 新田县| 建瓯市| 宁乡县| 土默特右旗| 资溪县| 宁德市| 新平| 马山县| 兴隆县|