安全递增整数的方法有哪些?

时间:2013-05-09 02:12:19

标签: java thread-safety

是否还有其他方法可以使用同步方法或AtomicInteger进行线程安全的整数递增?

3 个答案:

答案 0 :(得分:1)

我们有以下可用的同步选项:

1)volatile(但它不能使++安全)

2)AtomicInteger(最好的,它没有锁定)

3)synchronized

4)java.util.concurrent.locks framework

所以第三种方法是使用ReentrantLock

答案 1 :(得分:0)

您也可以同步一个对象。

示例:

Integer myInteger = 0;
synchronized(myInteger) {
    myInteger += 1;
}

答案 2 :(得分:0)

不,因为它是读取然后写入。

您必须使用锁定机制(例如synchronized,但也可以使用Lock)或原子操作。