ConcurrentLinkedQueue:如何在 Java 中实现处理程序



假设我们有两个线程通过ConcurrentLinkedQueue连接。我想要的是队列上的处理程序之类的东西,以便一个线程知道另一个队列何时将 soemthing 添加到队列并轮询它。这可能吗?

通常,

当线程上至少有一个生产者,而另一个线程上至少有一个使用者时,使用ConcurrentLinkedQueue

使用者将在元素可用时立即处理元素,以对队列块执行读取操作,有时时间有限。

根据应用程序的不同,您可以有一个生产者和许多消费者,反之亦然。

阻塞完全满足您的要求(使用者线程知道何时插入元素(。

使用者线程

阻塞的事实不是问题,除非是你的主进程线程,或者除非你计划构建几百个并发使用者。

所以,Queue#take((

或 Queue#poll(long timeout,TimeUnit unit(是你的朋友,如果你只是在专用线程上运行它。

最新更新