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

您的位置:首頁技術(shù)文章
文章詳情頁

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

瀏覽:121日期: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++; }}

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

問題解答

回答1:

volatile關(guān)鍵字就是用來保證內(nèi)存可見性的。

回答2:

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

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

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

標(biāo)簽: java
相關(guān)文章:
主站蜘蛛池模板: 黄浦区| 昭平县| 高州市| 二连浩特市| 罗平县| 兴城市| 安溪县| 手游| 平昌县| 黑龙江省| 许昌县| 天峻县| 竹北市| 冀州市| 射洪县| 罗江县| 偃师市| 营山县| 北流市| 嘉禾县| 榆树市| 弥渡县| 油尖旺区| 错那县| 边坝县| 湖口县| 定西市| 清丰县| 大化| 浠水县| 绵阳市| 东至县| 永定县| 乌苏市| 体育| 冕宁县| 巧家县| 昌都县| 中牟县| 凤冈县| 双鸭山市|