我已经阅读了很多关于Java中的并发队列但是我不知道在省略优先公理时要使用什么。
以下是真实情况 - 我使用以下属性实现了自己的执行程序:
工作线程正在处理任务(runnables)或被阻止,等待新任务出现在任务池中。
我打算最大化性能,所以我避免使用锁和条件变量。然而,真正的表现并不够好(见下文) - 使用LinkedBlockingQueue
作为任务池。
我意识到我实际上并不关心先执行哪个任务,因此队列似乎有点矫枉过正。我认为某种套装或包装"足够,希望更快。
问题:您建议我使用哪种收集和/或一般方法?
我的基准 - 我安排了1000个任务,每个Thread.sleep(15)
。我已经测量了运行1000次任务的壁挂时间;然后执行者的壁垒时间。加速仅略高于一半的线程(在2,4,6,......,48上测量)线程。