小编Mau*_*umi的帖子

使用原子整数的共享计数器并发增量

嗨,我是多线程新手。试图理解原子整数的概念。我有一个共享计数器变量,它由两个线程递增

class MyCounterClass{
    volatile AtomicInteger sharedCounter = new AtomicInteger(0);

    public int incrementCounter() {
        for(int i = 0; i <10000; i++){
            // add 1
            sharedCounter.incrementAndGet();
        }

        return this.sharedCounter.get();
    }
}

public static void main(String[] args) throws InterruptedException {
        MyCounterClass myCounterClassObj = new MyCounterClass();
        Thread t1 = new Thread(() -> {
            System.out.println("Thread " + Thread.currentThread().getName() + " " +myCounterClassObj.incrementCounter());
        });

        Thread t2 = new Thread(() -> {
            System.out.println("Thread " + Thread.currentThread().getName()+ " " + myCounterClassObj.incrementCounter());
        });

        t1.start();
        t2.start();

        t1.join();
        t2.join();
    }
} …
Run Code Online (Sandbox Code Playgroud)

java concurrency multithreading race-condition atomicinteger

4
推荐指数
1
解决办法
155
查看次数