java原子性练习题
时间: 2024-02-09 15:06:24 浏览: 83
当涉及到多线程编程时,保证原子性是非常重要的。Java提供了一些原子操作类来实现原子性,比如AtomicInteger、AtomicLong、AtomicBoolean等。这些类提供了一些方法来执行原子操作,确保操作的完整性。
以下是一个Java原子性练习题的示例:
假设有一个共享变量count,初始值为0。现在有两个线程同时对count进行自增操作,每个线程自增100次。请问最终count的值是多少?
解答:
使用AtomicInteger类可以保证自增操作的原子性。可以使用以下代码来解决这个问题:
```java
import java.util.concurrent.atomic.AtomicInteger;
public class AtomicExercise {
private static AtomicInteger count = new AtomicInteger(0);
public static void main(String[] args) throws InterruptedException {
Thread thread1 = new Thread(() -> {
for (int i = 0; i < 100; i++) {
count.incrementAndGet();
}
});
Thread thread2 = new Thread(() -> {
for (int i = 0; i < 100; i++) {
count.incrementAndGet();
}
});
thread1.start();
thread2.start();
thread1.join();
thread2.join();
System.out.println("Final count: " + count.get());
}
}
```
运行以上代码,最终输出的count值应该是200。
阅读全文