是否有任何其他方法使线程安全的整数增量比使用同步方法或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