假设我有一个调度程序
@Component
public class Scheduler{
private static int counter = 0;
private synchronized void countIt(){
counter++;
}
@Scheduled(fixedDelay = 3000)
public void job1(){
countIt();
}
@Scheduled(fixedDelay = 6000)
public void job2(){
countIt();
}
}
在不同情况下的不同任务触发器将调用countIt。
当两个或多个求职电话同时计数时,将导致饥饿。
谁能告诉我是否有办法避免这种情况?
最佳答案
这里没有僵局!
将ReetrantLock与公平政策一起使用。如果您不知道ReentrantLock,请用google搜索。
private final ReentrantLock lock = new ReentrantLock(true);