向 LinkedBlockingDeque 客户端发送信号以停止消费的最佳方式是什么?
服务线程将停止写入双端队列,但如果队列为空,消费线程将阻塞。我需要做的事情是让消费线程从队列中获取所有内容并关闭。中断是好的解决方案吗?
最佳答案
Thread.interrupt()
通常不是一个好主意,因为它可能会导致中断线程当前正在处理的工作。
更可靠的方法是使用某种特殊消息,即发送特殊对象,该对象将被消费者解释为结束信号。
或者,可以考虑使用 ExecutorService
来实现此目的及其 shutdown method它可以轻松完成工作,并且是此类问题的标准解决方案。
关于java - 向 LinkedBlockingDeque 客户端发出信号停止消费的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35963170/