Предположим, у меня есть планировщикSpring Scheduler синхронизируется метод голодание
@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();
}
}
Different триггер задачи в другом случае будет вызывать countIt.
При одновременном одновременном вызове двух или более вопросов, это вызовет голод.
Может ли кто-нибудь сказать мне, есть ли способ избежать этой ситуации?
не похож на случай для тупиковой – AdamSkywalker
@AdamSkywalker реальный случай немного сложнее. У меня много потоков, которые называют этот синхронизированный метод. Когда они вызывали метод в одно и то же время, произошел тупик. – Roy
deadlock - это ситуация, когда поток 1 содержит ресурс A и нуждается в ресурсе B, а поток 2 содержит ресурс B и нуждается в ресурсе A. Синхронизированный метод - это мьютекс, только он не может вызвать тупик – AdamSkywalker