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