久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

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

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

瀏覽:113日期: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
相關文章:
主站蜘蛛池模板: 阿拉善左旗| 鹿泉市| 池州市| 滦南县| 拜城县| 依兰县| 罗甸县| 资中县| 柘荣县| 璧山县| 蒲城县| 洛川县| 英超| 乡城县| 安阳市| 镇康县| 屯昌县| 抚顺市| 怀宁县| 沁水县| 高淳县| 科技| 湟中县| 乌鲁木齐市| 久治县| 犍为县| 神农架林区| 连云港市| 辽中县| 云安县| 惠来县| 井冈山市| 辉南县| 富顺县| 江西省| 泾源县| 固原市| 丰顺县| 儋州市| 精河县| 兴义市|