我正在使用 LinkedBlockingQueue 和生产者/消费者模式来缓冲任务。要将任务添加到队列中,我使用生产者的方法:Queue.put(Object); 要从我用于消费者的队列中获取任务:Queue.take(Object);
我在 Java api 中发现这两种方法都会阻塞,直到队列可用。我的问题是:我知道在我的系统中有更多的任务生产者而不是消费者。我所有的任务都需要处理。所以我需要我的消费者在被阻塞时优先于生产者来获取队列。
他们是否可以在不改变 LinkedBlockingQueue 方法的情况下做到这一点?