Java中有同步的Queue
类吗?我正在寻找像Vector
(这是同步)与ArrayList
(这不是),但不是实现List
接口,我正在寻找它来实现Queue
。Java中是否存在同步队列?
请注意,没有Collections.synchronizedQueue
方法来包装未同步队列并使其同步。
Java中有同步的Queue
类吗?我正在寻找像Vector
(这是同步)与ArrayList
(这不是),但不是实现List
接口,我正在寻找它来实现Queue
。Java中是否存在同步队列?
请注意,没有Collections.synchronizedQueue
方法来包装未同步队列并使其同步。
这是一个阻塞队列,它不是被请求的。 – rghome 2017-12-04 13:55:41
@rghome我相信OP想找到线程安全的实现,在这种情况下,我的答案是正确的 – bsiamionau 2017-12-05 05:15:05
我担心阻塞行为。如果阅读器/写入器阻塞,那么这是与标准非阻塞队列中非常不同的行为。但是阅读API,我认为这是可选的,你也可以读/写非阻塞。所以你是对的。 – rghome 2017-12-05 08:15:51
SynchronousQueue怎么样? 参见:http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/SynchronousQueue.html
这是一个非常专业化的实现,并非真正的一般用途。 – jtahlborn 2013-03-17 12:45:30
您可以使用“的BlockingQueue”,下面的链接可以帮助你获得更好的主意吧
ConcurrentLinkedDeque – delicateLatticeworkFever 2013-03-17 12:44:11
如果你通过扩展类的文档https://docs.oracle.com/javase/7/docs/api/java/util/AbstractQueue.html你可能会发现你在找什么。和https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/BlockingQueue.html http://stackoverflow.com/questions/2695426/are-linkedblockingqueues-insert-and-remove-方法线程安全 – rogerdpack 2015-04-08 19:37:08
这似乎是一个非常有效的问题,因为Queue在这方面似乎与其他Java集合不同。我打算要求重新开放,编辑后稍微澄清一下问题。 – rghome 2017-12-04 13:54:39