【发布时间】:2014-06-12 05:08:58
【问题描述】:
我有一个请求队列。有两个线程。在线程中,我将项目添加到队列中,第二个线程基本上从队列列表中获取请求并执行它们。所以第二个线程等待第一个线程将一些请求放入列表中。我在一个while循环中这样做。我认为这不是最好的方法。它是 CPU 密集型的。每当我添加请求时,我都会想办法通知第二个线程。但可能存在请求可能无法成功执行的问题,因此我必须再次要求第二个线程执行请求。 那么您认为有什么方法可行吗?
【问题讨论】:
-
我想我会选择阻塞队列。但一个问题是,当您在阻塞队列上调用 pop 时,它应该等待元素插入。但正如在文档中所写的那样,如果没有可用的元素,它将返回 null 。所以这会是个问题吗?
-
在
BlockingQueue上,您必须使用take。此方法阻塞等待队列中元素的线程。见tutorials.jenkov.com/java-util-concurrent/blockingqueue.html
标签: java queue message-queue