相关疑难解决方法(0)

如何使用ConcurrentLinkedQueue?

我如何ConcurrentLinkedQueue在Java中使用?
使用这个LinkedQueue,我是否需要担心队列中的并发性?或者我只需要定义两个方法(一个用于从列表中检索元素,另一个用于向列表中添加元素)?
注意:显然这两种方法必须同步.对?


编辑:我正在尝试做的是:我有一个类(在Java中)有一个方法从队列中检索项目,另一个类用一个方法将项目添加到队列中.从列表中添加和检索的项目是我自己的类的对象.

还有一个问题:我是否需要在remove方法中执行此操作:

while (queue.size() == 0){ 
  wait(); 
  queue.poll();
}
Run Code Online (Sandbox Code Playgroud)

我只有一个消费者和一个生产者.

java concurrency

91
推荐指数
4
解决办法
12万
查看次数

LinkedBlockingQueue和ConcurrentLinkedQueue有什么不同?

我已经阅读了博客,但我不确定他的结论是否正确:

http://www.javacodegeeks.com/2010/09/java-best-practices-queue-battle-and.html#ixzz1seaiSLwp

他说:从提供的性能结果可以看出,LinkedBlockingQueue实现了最佳的组合(添加和删除元素)性能结果,应该是实现生产者 - 消费者schenarios的头号候选者.

我想知道,如果我不在我的代码中使用锁定,那么它会不会更快?

那么为什么LinkedBlockingQueue比无锁队列(ConcurrentLinkedQueue)更快?

谢谢 !

java lock-free java.util.concurrent concurrent-programming

5
推荐指数
1
解决办法
6651
查看次数

需要一个可以支持多个读者的队列

我需要一个可以由多个读者处理的队列.

读者将一个元素出列并将其发送到REST服务.

重要的是要注意:

  • 每个读者都应该出列不同的元素.如果队列具有元素A,B和C,则线程1应该出队A并且线程2应该以并发方式出队B. 等等,直到队列中没有任何内容.
  • 我知道总是在繁忙的循环中运行,窥视项目的队列是CPU密集型的.所以我不确定阻塞队列是否是一个不错的选择.

我有什么选择?

java queue concurrency multithreading

3
推荐指数
2
解决办法
3493
查看次数