假设我有一个可运行的,它有一个简单的整数计数变量,每次可运行运行时都会递增。提交此对象的一个实例以在计划的执行程序服务中定期运行。
class Counter implements Runnable {
private int count = 0;
@Override
public void run() {
count++;
}
}
Counter counter = new Counter();
ScheduledExecutorService executorService = Executors.newScheduledThreadPool(5);
executorService.scheduleWithFixedDelay(counter, 1, 1, TimeUnit.SECONDS);
在这里,对象正在访问不同线程内自己的内部状态(读取和递增)。此代码是线程安全的,还是当变量在其他线程中调度时,我们是否会丢失对变量的更新?count
万千封印
胡说叔叔
噜噜哒
相关分类