1. 程式人生 > >【2019春招準備:12.原子類操作Atomic包】

【2019春招準備:12.原子類操作Atomic包】

【內容】
【補充】
Thread.yeild:讓出cpu使用權,重新平等競爭
Thread.activeCount()

【內容】

  1. 問題引入
    public static int 經過20執行緒的1000次count++ 即時判定Thread.aliveCount()>0yeild res<20000,如果改成atomicInteger型別,++變成count.incrementAndGet(), 最後生成的是20000

  2. Atomic的特點
    ①多執行緒環境下,無鎖的進行原子操作。
    ②不能絕對保證執行緒不被阻塞。(因不同CPU的原子指令不同,可能需要某種形式的內部鎖)

內部實現類 特點(除了原子方式更新,不能當做原有類的替代品之外)
AtomicBoolean
AtomicInteger 類繼承自Number,允許被以數值為基礎的 classes檔案 當做工具類去使用
AtomicLong 類繼承自Number,允許被以數值為基礎的 classes檔案 當做工具類去使用
Atomicrefference 原子方式更新引用