Java併發系列五 深入理解volatile關鍵字

2021-08-21 06:15:36 字數 794 閱讀 2708

instance = new instancce()  

//instance是volatile變數

這個寫回記憶體的操作會使得其他cpu裡快取了該記憶體位址的資料無效

乙個處理器的快取回寫到記憶體會導致其他處理器的快取失效;

當處理器發現本地快取失效後,就會從記憶體中重讀該變數資料,即可以獲取當前最新值。

public

class

volatileexample

public

void

reader

()   }

}

在每個volatile寫操作的後面插入乙個storeload屏障;

在每個volatile讀操作的後面插入乙個loadload屏障;

在每個volatile讀操作的後面插入乙個loadstore屏障。

storeload屏障:防止上面的volatile寫與下面可能有的volatile讀/寫重排序;

loadload屏障:禁止下面所有的普通讀操作和上面的volatile讀重排序;

loadstore屏障:禁止下面所有的普通寫操作和上面的volatile讀重排序。

public

class

volatiledemo

});thread.start();

try  catch (interruptedexception e)

isover = true;

}}

java高併發程式設計之深入理解Thread建構函式

2.1 執行緒的命名 構造中含有string name引數的就表示執行緒的名字。還可以呼叫thread 類的setname 方法重新命名 2.2 執行緒的父子關係 thread的所有建構函式,最終都會去呼叫乙個靜態方法init.private void init threadgroup g,runn...

深入理解併發程式設計 FutureTask

本文為讀書筆記 可參考 futuretask jdk8實現 jkd1.8不再依賴aqs來實現,而是用的cas state 2.futuretask的使用 3.futuretask的實現 jkd1.8不再依賴aqs來實現 4.使用舉例 future介面和實現future介面的futuretask類,代...

JAVA 深入理解 IO

定義 如果乙個類是用來完成程式和裝置之間的資料傳輸,則這個類有乙個特殊的稱謂叫 流 流和類的關係 流一定是類,但是類不一定是流。分類 輸入流 輸出流 位元組流 字元流 原始流 包裹流 常用流 的介紹 四大基本抽象流 inputstream outputsream reader writer 位元組流...