atomicinteger,由於儲存的值的value是volatile型別所有具有執行緒可見性。通過cas比較交換進行自增,或者更新值具有原子性。所以atomicinteger是執行緒安全的具有類鎖一樣的執行緒安全性。
具體參見下面原始碼解析:
private static final unsafe unsafe = unsafe.getunsafe();
private static final long valueoffset;
static catch (exception ex)
}private volatile int value;//volatile保證了多執行緒之間的記憶體可見性
/*** creates a new atomicinteger with the given initial value.
** @param initialvalue the initial value
*/public atomicinteger(int initialvalue)
/*** creates a new atomicinteger with initial value .
*/public atomicinteger()
public final int decrementandget()
}
AbstractCollection原始碼分析
abstractcollection抽象類提供了collection的骨架實現,collection分析請看 這裡直接看它的 是如何實現的.public abstract iterator iterator 該方法沒有實現.public abstract int size 該方法沒有實現.publi...
ThreadPoolExecutor原始碼閱讀
執行緒池解決兩個問題 一是復用執行緒,減少建立銷毀執行緒帶來系統開銷 二是限定系統資源使用邊界,避免大量執行緒消耗盡系統記憶體 適用於互不依賴,執行時間短,不需要對執行緒控制操作的執行緒 新增任務時,1.若執行緒數量小於corepoolsize,則新增執行緒執行任務 2.若執行緒數量大於等於core...
OrangePi One Android 原始碼編譯
一 系統環境搭建參照 二 lichee原始碼編譯 1.檢視help build.sh h2.配置核心 cd linux 3.4 make arch arm menuconfig 進入配置頁面,上下移動列表,空格是選擇列表,左右移動選擇退出選項 3.首次編譯執行清除 在 lichee linux3.4...