理解并解决Java并发问题:线程安全示例
在Java中,线程安全通常是指一个代码块无论被多少个线程同时访问,都能保证数据的正确性。
以下是一个简单的线程安全示例,我们将创建一个计数器类,它有两个方法,一个用于增加计数,另一个用于获取当前计数值。我们确保这两个方法在任何时候对计数的影响都是可见的。
public class Counter {
private int count;
public synchronized void increment() {
count++;
}
public synchronized int decrement() {
if (count > 0) {
count--;
return count;
} else {
throw new IllegalArgumentException("Counter is already zero");
}
}
public synchronized int getCount() {
return count;
}
}
在这个例子中,我们使用了Java的synchronized关键字来保证方法的原子性。这意味着在任何给定的时间点,只有一个线程可以访问该方法。这样就保证了计数器在多线程环境下的正确性。
还没有评论,来说两句吧...