向 LinkedBlockingDeque 客户端发出停止消费信号的最佳方式是什么?

What is the best way to signal LinkedBlockingDeque client to stop consuming?

向 LinkedBlockingDeque 客户端发出停止消费信号的最佳方式是什么?

服务线程将停止写入双端队列,但如果队列为空,消费线程将阻塞。我需要做的是让消费线程从队列中获取所有内容并关闭。中断是好的解决方案吗?

Thread.interrupt() 通常不是一个好主意,因为它可能会导致线程当前正在进行的工作中断。

更可靠的方法是使用某种特殊消息,即发送特殊对象,该对象将被消费者解释为结束信号。

或者,考虑使用 ExecutorService 和它的 shutdown method 可以轻松完成工作,并且它是此类问题的标准解决方案。