我有一个带有两个@Scheduled 方法的类,如下所示。
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(.....);
}
}
我正在使用一个有 20 个线程的线程池。现在我在方法中使用了DelayQueue
一个阻塞队列run
。是否有可能所有 20 个线程都卡在读取队列(当它为空时)并且该fillQueue
方法永远不会被执行?