在java中,高并发/多线程情况下,int的自增自减操作都不是线程安全的。
如果不使用synchronized关键字,怎样才能保证int的线程安全?
volatile int number; // 1
AtomicInteger number; // 2
volatile AtomicInteger number; // 3 有必要这么声明吗?
以上3种,哪种是线程安全的?
那么AtomicInteger类型是否需要用volatile关键字修饰,2是不是线程安全的?
可以参见http://haininghacker-foxmail-com.iteye.com/blog/1401346
看了你的问题才对此进行了了解的,AtomicInteger 内部貌似就是通过voilate实现的,voilate保证了多线程间操作的值永远是最新的,具体见给你的文章吧,或者网上看看其他相关文章。
补充:明显AtomicInteger的自增操作时线程安全的啦。如果你还有其他用处或操作,那么是否线程安全就要具体情况了啊。