gpt4 book ai didi

java - 从单个线程中的多个 BlockingQueues 中读取

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:40:50 24 4
gpt4 key购买 nike

我有三个 Java 的 LinkedBlockingQueue 实例,我想只使用一个线程从它们中读取(take 操作)。天真的方法是每个队列一个线程。

在 Java 中是否有类似 UNIX select 系统调用的阻塞队列?

谢谢。

最佳答案

好吧,那些 BlockingQueues 确实应该由它们自己的线程提供服务。

我会考虑尝试的是为更小的项目设置第 4 个队列,比如 Booleans,并对每个项目调用 offer()其他 3 个队列通过在第 4 个队列中插入一个 boolean 值来伴随它们的插入。然后您的线程可以在第 4 个队列上 hibernate ,当它醒来时可以在其他 3 个队列中peek() 以找出从哪里得到 cargo 。

我认为这是非常不优雅的解决方案,而且我怀疑可能存在竞争条件,有时您不会被干净地唤醒。但它基本上应该可以工作。

关于java - 从单个线程中的多个 BlockingQueues 中读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3266949/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com