並發程式設計中的 AtomicInteger
AtomicInteger 是一個 Java 類,支援並發存取底層整數值。了解 AtomicInteger 的實際應用對於優化多執行緒環境中的並發性至關重要。
典型用例
AtomicInteger 有兩個主要用途:
比較與交換範例
Brian Göetz 的《Java Concurrency In Practice》提供了使用AtomicInteger 實現非阻塞隨機數的範例產生:
public class AtomicPseudoRandom extends PseudoRandom { private AtomicInteger seed; ... public int nextInt(int n) { while (true) { int s = seed.get(); int nextSeed = calculateNext(s); if (seed.compareAndSet(s, nextSeed)) { ... } } } }
在此範例中,使用比較和交換自動更新種子值。取得下一個種子的計算是無阻塞執行的,保證多個執行緒可以並發生成隨機數。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3