如果一个队列需要被多个线程访问,但目前只由单个方法
目前,我将队列声明为
您有什么想法?
getNextInQueue()
进行修改,那么最适合同步访问队列的形式是什么?目前,我将队列声明为
ConcurrentLinkedQueue
,但我不想出现多个线程等待锁释放而导致死锁的情况。另一种处理方式是不同步队列,而是同步getNextInQueue()
。然而,随着这段代码在未来被使用,我认为这种方式无法很好地扩展。(每个修改队列的程序员都必须确保同步操作。)您有什么想法?
synchronized
的LinkedList
。 - millimooseConcurrentLinkedQueue
不是任何东西的包装器。它是一个独立的集合,实现了不锁定所有数据。 - millimooseConcurrentLinkedQueue
会做什么吗? - millimoosesynchronized LinkedList
而不是ConcurrentLinkedQueue
。其次,就像手册所说的那样-你不能指望这种异常被抛出。行为是不可预测的。但是你问了一个有趣的问题,我没有尝试实现这样的异常。我明天会研究一下,现在太晚了;) - Nir Alfasi