gpt4 book ai didi

java - 从 Java BlockingQueue 获取之前进行检查

转载 作者:行者123 更新时间:2023-12-02 07:14:43 26 4
gpt4 key购买 nike

我遇到的问题类似于单个生产者多个消费者问题。除了消费者是“不同的”,我需要一种在购买新产品之前“偷看”新产品的方法(以检查它的用途)。

问题实际上是单个服务器线程为多个客户端线程提供服务。客户端将请求信息,然后服务器应该回复该客户端

我怎样才能做到这一点?一种可能性是像这样的循环:

while (true) {
if (q.peek() ... check here ...) {
// do something
} else {
Sleep(...); // prevent taking up too much CPU?
}
}

但似乎不太理想/对吗?

最佳答案

这里有两个选项:

选项 1. 让队列的一个消费者将项目取出并将其委托(delegate)给“真正的”消费者。这将需要您做大量的工作,因为您的主要消费者必须知道哪些“真正的”消费者很忙。此外,如果“真正的”消费者之一比其他消费者占用更多资源,则在主要消费者等待传递消息时,它有可能阻塞队列。

更好的解决方案是:

选项 2. 为每种类型的消费者使用一个队列。您的生产者将确定每种消息类型属于哪个队列,并将其放入正确的队列中。然后每个消费者将从它感兴趣的队列中提取数据。

关于java - 从 Java BlockingQueue 获取之前进行检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15081121/

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