Ich habe eine Klasse mit zwei @ Scheduled-Methoden wie folgt.Thread-Garantie im Frühjahr @ Geplante Aufgaben
public class JobExecutor {
private static final DelayQueue<Job> JOB_QUEUE = new DelayQueue<>();
@Scheduled
public void run() {
Job job = JOB_QUEUE.take();
}
@Scheduled
public void fillQueue {
JOB_QUEUE.add(.....);
}
}
Ich verwende einen Threadpool mit 20 Threads. Jetzt verwende ich eine DelayQueue
, die eine blockierende Warteschlange in der run
Methode ist. Gibt es eine Möglichkeit, dass alle 20 Threads beim Lesen der Warteschlange hängen bleiben (wenn sie leer ist) und die Methode fillQueue
niemals ausgeführt wird?
Eigentlich mache ich eine Take(). Nicht Umfrage(). – falcon