【2019春招準備:12.原子類操作Atomic包】
阿新 • • 發佈:2018-12-02
【內容】
【補充】
Thread.yeild:讓出cpu使用權,重新平等競爭
Thread.activeCount()
【內容】
-
問題引入
public static int 經過20執行緒的1000次count++ 即時判定Thread.aliveCount()>0yeild res<20000,如果改成atomicInteger型別,++變成count.incrementAndGet(), 最後生成的是20000 -
Atomic的特點
①多執行緒環境下,無鎖的進行原子操作。
②不能絕對保證執行緒不被阻塞。(因不同CPU的原子指令不同,可能需要某種形式的內部鎖)
內部實現類 | 特點(除了原子方式更新,不能當做原有類的替代品之外) |
---|---|
AtomicBoolean | |
AtomicInteger | 類繼承自Number,允許被以數值為基礎的 classes檔案 當做工具類去使用 |
AtomicLong | 類繼承自Number,允許被以數值為基礎的 classes檔案 當做工具類去使用 |
Atomicrefference | 原子方式更新引用 |