java怎么对临界区的数操作
时间: 2024-05-06 10:14:45 浏览: 8
Java中可以使用synchronized关键字来实现临界区的同步操作。synchronized可以用来修饰方法或代码块,实现多线程之间的互斥访问。当一个线程进入了synchronized修饰的方法或代码块时,其他想要进入这个方法或代码块的线程将被阻塞,直到当前线程执行完毕并释放锁。
临界区的数操作可以在synchronized修饰的方法或代码块中进行,确保多线程对这些数的操作是同步的,避免出现线程安全问题。例如,下面是一个使用synchronized实现临界区同步的示例代码:
```
public class SynchronizedDemo {
private int count = 0;
public synchronized void increment() {
// 对临界区的数进行操作
count++;
}
public static void main(String[] args) {
SynchronizedDemo demo = new SynchronizedDemo();
// 创建多个线程并发执行increment方法
for (int i = 0; i < 10; i++) {
new Thread(() -> {
for (int j = 0; j < 10000; j++) {
demo.increment();
}
}).start();
}
// 等待所有线程执行完毕
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
// 输出count的值
System.out.println("count = " + demo.count);
}
}
```
在上面的示例代码中,increment方法被synchronized修饰,确保多线程对count变量的操作是同步的。在主线程中创建了10个线程并发执行increment方法,最终输出count的值,可以看到count的值为100000,说明多线程对count的操作是正确同步的。