小编pep*_*eps的帖子

AtomicInteger.incrementAndGet线程安全吗?

例如,如果我多次从多个线程和每个线程运行此代码,是否会有数据竞争?

   public boolean swap(int i, int j) {
    if (value.get(i) <= 0 || value.get(j) >= maxval) {
        return false;
    }
    value.decrementAndGet(i);
    value.incrementAndGet(j);
    return true;
}
Run Code Online (Sandbox Code Playgroud)

顺便说一下,如果我在这里使用decrementAndGet或getAndDecrement有什么区别吗?

这里的值是AtomicIntegerArray.我需要在不同的同步方法中进行性能测试.所以我在值中交换elemtents,看看输出总和是否与预期相同

我的任务是找到一个"不应该是DRF"但"必须仍然无死锁"的方法,并且比ReentrantLock快得多.所以我很难找到一种有数据竞争的方法......

java multithreading thread-safety

2
推荐指数
1
解决办法
7012
查看次数

标签 统计

java ×1

multithreading ×1

thread-safety ×1