Mar*_*boe 3 java performance multithreading data-structures
我们正在开发一个包含多个工作线程的Java应用程序 这些线程必须向我们的UI线程提供大量计算结果.结果的交付顺序无关紧要.
现在,所有线程只是将结果推送到同步堆栈 - 但这意味着每个线程必须等待其他线程才能传递结果.
是否存在支持同时插入的数据结构,每次插入在恒定时间内完成?
谢谢,
马丁
gus*_*afc 10
ConcurrentLinkedQueue专为高争用而设计.生产者在一端排队东西,消费者在另一端收集元素,所以一切都将按照添加的顺序进行处理.
ArrayBlockingQueue更适合较低的争用,空间开销较低.
编辑:虽然这不是你要求的.Simultaneuos插入?您可能希望为每个线程提供一个输出队列(例如,一个ArrayBlockingQueue),然后让UI线程轮询单独的队列.但是,我认为你会发现上面两个Queue实现中的一个足够了.