是否有任何其他方法使線程安全的整數增量比使用同步方法或AtomicInteger?什麼是安全遞增整數的方法?
1
A
回答
0
您也可以同步一個對象。
例子:
Integer myInteger = 0;
synchronized(myInteger) {
myInteger += 1;
}
1
我們有以下可用的同步選項:
1)volatile
(但不會使++安全)
2)的AtomicInteger(最好的,它的無鎖)
3)
4)的java.util.concurrent.locks框架
所以第三種方式是用的ReentrantLock
+0
易失性幫助,如果您訪問同步塊 – Bohemian 2013-05-09 05:14:46
0
沒有,因爲它是一個讀,然後寫。
您必須使用鎖定機制(例如,但也可以使用Lock
)或原子操作。
相關問題
- 1. 將數組數組傳遞給C#中的DLL的安全方法是什麼?
- 2. 什麼是讀取PHP $ _REQUEST超全局的安全方法?
- 3. 「這個方法不是線程安全的」是什麼意思?
- 4. 什麼是添加增量遞減函數的最佳方式
- 5. 什麼是正整數分解爲整數的正確方法?
- 6. CakePHP:安全後置方法是多麼的安全?
- 7. 迭代HashSet的最快/最安全的方法是什麼?
- 8. 遞增引用計數的經驗法則是什麼?
- 9. 什麼是最新的安全用戶認證方法?
- 10. 將InnoDB轉換爲MyISAM的最安全方法是什麼?
- 11. REST Web服務中的安全方法究竟是什麼?
- 12. 在PHP中驗證URL最安全的方法是什麼?
- 13. 從C++ CLI調用Debug.Assert的安全方法是什麼?
- 14. 在iOS8上使用FileReader最安全的方法是什麼?
- 15. 上傳文件最安全的方法是什麼?
- 16. 什麼是最安全的散列方法? (PHP)
- 17. 在* nix中清空目錄的最安全方法是什麼?
- 18. 做自動郵件的安全方法是什麼?
- 19. 什麼是最好(最安全)的方式來增加UIWebView使用的URL?
- 20. SendBroadcast會導致什麼樣的安全問題,什麼是更好的方法?
- 21. 通過需要void *參數的函數傳遞unique_ptr的最安全方法是什麼?
- 22. 什麼是「安全變量」?
- 23. 什麼是運輸安全?
- 24. 什麼是IP安全?
- 25. 什麼是春季安全
- 26. 什麼是類型安全?
- 27. 什麼是安全參數jdk.tls.disabledAlgorithms
- 28. 自動遞增主鍵的整數溢出會發生什麼?
- 29. 什麼是使用PHP連接到數據庫的最安全的方法?
- 30. NSUserDefaults中的遞增整數
你爲什麼需要其他方式? AtomicInteger是您最好的選擇,因爲它不鎖定,因此不存在風險或性能損失。如果您需要關於同步的更多信息,可能這會有所幫助:http://java.dzone.com/articles/mind-it-synchronization-risky – 2013-05-09 04:59:50