我正在编写一个实现队列接口的自定义队列。此实现是线程安全的,并且在某些情况下会阻塞。
普通的 Queue 接口没有提到异常,因此我不能InterruptedException
在我的实现中抛出任何异常。
我看到了这个问题的两种解决方案,但它们都不是很令人满意:
移除 Queue 接口并抛出异常。这使得代码无法用于需要队列的外国软件。
Throw
RuntimeException
,这将产生大量非常令人惊讶的软件活动,我不想冒险。
不知何故,诸如ArrayBlockingQueue
设法实现Queue
和BlockingQueue
. 这是要走的路,还是这里的诀窍是什么?