线程化数据集?

时间:2012-02-01 18:03:34

标签: java multithreading

我有一堆物品。它们不需要分类或订购。他们有一个需要调用的方法:myObject.update()。最终他们需要从容器中移除。

现在它是单线程的,而update()方法是CPU绑定的(没有I / O)。我们有一个很好的服务器,有16个“核心”(核心+ HT)。

我想做的是让一个容器对象负责“抛出”对象。然后是15个线程在需要时向容器请求新对象。这是一个很好的方法吗?

什么是用于保存对象的线程安全数据结构?或者我应该让容器对象负责不发送两次相同的对象?

1 个答案:

答案 0 :(得分:1)

在java中,您的问题的优秀候选人是LinkedBlockingQueueArrayBlockingQueue

它们提供先进先出功能,并且一次性保留元素数量的可选界限。

或者,一个好的方法是使用ExecutorService,它包含一个线程池和一个内部队列,用于按需提供线程。