【问题标题】:Is there a synchronized queue in Java? [closed]Java中有同步队列吗? [关闭]
【发布时间】:2013-03-05 20:14:12
【问题描述】:

Java 中有同步的Queue 类吗?我正在寻找类似Vector(同步)与ArrayList(不是)之类的东西,但我没有实现List接口,而是在寻找它来实现Queue

请注意,没有Collections.synchronizedQueue 方法可以包装未同步的队列并使其同步。

【问题讨论】:

标签: java synchronized


【解决方案1】:

查看ArrayBlockingQueue 和另一个BlockingQueue 实现。

来自文档:

一个队列,它还支持在检索元素时等待队列变为非空,并在存储元素时等待队列中的空间可用。

【讨论】:

  • 这是一个阻塞队列,不是请求的。
  • @rghome 我相信OP想要找到线程安全的实现,在这种情况下我的回答是正确的
  • 我担心阻塞行为。如果读取器/写入器阻塞,那么这与标准非阻塞队列中的行为非常不同。但是阅读 API,我认为这是可选的,您也可以读/写非阻塞。所以你是对的。
  • 可以避免阻塞,但是ArrayBlockingQueue的容量是固定的。
  • 这个答案没有抓住重点:BlockingQueue implementations are thread-safe.source
【解决方案2】:

【讨论】:

  • 这是一个非常专业的实现,并不是真正的通用。
【解决方案3】:

您可以使用“BlockingQueue”,下面的链接可能会帮助您更好地了解它

BlockingQueue, Queue Implementations

【讨论】:

    猜你喜欢
    • 2016-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多