我有两个分开的阻塞队列。客户端通常使用第二个阻塞队列中的第一个来检索要处理的元素。
在某些情况下,客户机对两个阻塞队列的元素感兴趣,无论哪个队列首先提供数据。
客户端如何并行地等待这两个队列?
发布于 2016-03-31 10:26:08
您可以尝试在某种循环中使用poll方法,在轮询另一个队列之前只等待指定的时间。
poll
除此之外,我认为在不同线程上运行每个队列的阻塞操作并为主应用程序提供回调接口是另一个稍微复杂一些的选项。
发布于 2017-08-08 21:39:11
我遇到了同样的问题,最后编写了自己的并发队列,以支持这种使用模式。
由于Java阻塞初始不允许阻塞多个对象,解决方案被推送到集合本身:链式阻塞多队列实际上是一组由头连接的队列。元素提供给单独的“子队列”,但是从一个地方检索(支持阻塞操作)。
https://stackoverflow.com/questions/36330623
相似问题