理解和解决Java中并发控制问题示例
在Java中,并发控制是管理多个线程同时执行任务的关键。以下是一个理解并解决Java并发控制问题的简单示例:
问题:多个线程访问和修改共享数据(如一个数组或类变量)。
解决方案:使用Java提供的并发工具,如
synchronized
关键字、Lock
接口、ReentrantLock
实现以及Thread-safe
集合等。
下面是一个例子,使用synchronized
关键字保护共享的计数器:
public class Counter {
private int count = 0;
public synchronized void increment() {
count++;
}
public synchronized int decrement() {
if (count > 0) {
count--;
return count;
}
throw new IllegalArgumentException("Counter is already zero");
}
public synchronized int getCount() {
return count;
}
}
在这个例子中,increment()
、decrement()
和getCount()
方法都被同步保护。这样可以防止多个线程同时修改计数器的值。
还没有评论,来说两句吧...