相关疑难解决方法(0)

我应该在Java中使用哪个并发队列实现?

来自JavaDocs:

  • 的ConcurrentLinkedQueue是当许多线程共享访问一个共同的集合一个合适的选择.此队列不允许null元素.
  • ArrayBlockingQueue是一个经典的"有界缓冲区",其中固定大小的数组包含由生产者插入并由消费者提取的元素.此类支持用于排序等待生产者和消费者线程的可选公平策略
  • LinkedBlockingQueue通常具有比基于阵列的队列更高的吞吐量,但在大多数并发应用程序中具有较低的可预测性能.

我有两个场景,一个需要队列支持许多生产者(使用它的线程)与一个消费者,另一个是另一种方式.

我不明白使用哪种实现.有人可以解释一下这些差异是什么吗?

此外,什么是"可选的公平政策" ArrayBlockingQueue

java queue concurrency multithreading

123
推荐指数
3
解决办法
10万
查看次数

并发队列 - 一般问题(描述和用法)

我在掌握并发队列的想法时遇到了一些麻烦.我理解一个队列是FIFO,或先到先服务,数据结构.

现在,当我们添加并发部分时,我将其解释为线程安全(请告诉我,如果这是不正确的),事情会变得有点模糊.并发性是指各种线程可以添加到队列中,还是从队列中删除(服务项目)的方式?并发是否为这种操作提供了一种排序感?

我非常感谢并发队列功能的一般描述.这里的类似帖子并不像我希望的那样普遍.

还有并发优先级队列这样的东西吗?它的用途是什么?

非常感谢,对此主题的任何简短解释或有用的链接.

java queue concurrency priority-queue

7
推荐指数
2
解决办法
3076
查看次数