国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

java - getValue 和 increment 方法是互斥的?

瀏覽:97日期:2024-01-21 08:49:07

問題描述

public class CheesyCounter { // Employs the cheap read-write lock trick // All mutative operations MUST be done with the ’this’ lock held @GuardedBy('this') private volatile int value; public int getValue() { return value; } public synchronized int increment() {return value++; }}

假如一個線程在寫,另一個線程在讀,不會出現讀線程讀到的值是寫線程還沒更新之前的值嘛?也就是讀寫線程不同步的情況

問題解答

回答1:

volatile關鍵字就是用來保證內存可見性的。

回答2:

volatile 修飾的 value 使用 getValue() 讀取的時候,會一直獲取到最新值,滿足可見性volatile 能保證一次讀寫可見性,復合操作 (比如 value++) 不能保證,需要進行加鎖或其他同步措施

java - getValue 和 increment 方法是互斥的?

java - getValue 和 increment 方法是互斥的?

標簽: java
相關文章:
主站蜘蛛池模板: 南开区| 侯马市| 固始县| 宜都市| 交口县| 井陉县| 固镇县| 安塞县| 旬邑县| 吉林省| 濉溪县| 松潘县| 黄梅县| 神池县| 卓资县| 罗田县| 伊金霍洛旗| 六盘水市| 永嘉县| 仁怀市| 出国| 河津市| 开封市| 长白| 社会| 镇赉县| 大城县| 宝坻区| 康乐县| 西平县| 新沂市| 南开区| 桃江县| 阜新| 无锡市| 上杭县| 昂仁县| 柏乡县| 利川市| 嘉兴市| 苍山县|