如何并行等待多个阻塞队列?
How to wait on multiple blocking queues in parallel?
我有两个独立的阻塞队列。客户端通常使用第二个阻塞队列中的第一个来检索要处理的元素。
在某些情况下,客户端对来自两个阻塞队列的元素感兴趣,以先提供数据的队列为准。
客户端如何并行等待两个队列?
您可以尝试在某种循环中使用 poll
方法,以便在轮询另一个队列之前只为一个队列等待指定的时间量。
除此之外,我会说 运行 在单独的线程上对每个队列进行阻塞操作并为您的主应用程序提供回调接口是另一个稍微复杂的选项。
我遇到了同样的问题,最后编写了自己的并发队列来支持这种使用模式。
由于Java blocking primitived不允许阻塞多个对象,解决方案被推送到集合本身:Linked Blocking Multi Queue实际上是一组由头部连接的队列.元素提供给个人 "sub-queues",但从一个地方检索(支持阻塞操作)。
我有两个独立的阻塞队列。客户端通常使用第二个阻塞队列中的第一个来检索要处理的元素。
在某些情况下,客户端对来自两个阻塞队列的元素感兴趣,以先提供数据的队列为准。
客户端如何并行等待两个队列?
您可以尝试在某种循环中使用 poll
方法,以便在轮询另一个队列之前只为一个队列等待指定的时间量。
除此之外,我会说 运行 在单独的线程上对每个队列进行阻塞操作并为您的主应用程序提供回调接口是另一个稍微复杂的选项。
我遇到了同样的问题,最后编写了自己的并发队列来支持这种使用模式。
由于Java blocking primitived不允许阻塞多个对象,解决方案被推送到集合本身:Linked Blocking Multi Queue实际上是一组由头部连接的队列.元素提供给个人 "sub-queues",但从一个地方检索(支持阻塞操作)。