0

寻找ExecutorService类似的ThreadPoolExecutorForkJoinPool以最小的延迟将任务添加到工作队列并将它们出列以执行。

非常希望它能够感知 CPU 缓存并具有可调整的退避策略和线程工厂。

或者至少是烹饪它的部分的最佳例子。

4

1 回答 1

4

将任务添加到工作队列并将它们出列执行的最小延迟。

这些库都具有相同的延迟,这在很大程度上取决于您拥有的硬件和您拥有的操作系​​统(就像线程调度一样)

没有影响延迟的特定选项。

其他选项包括使用;

  • 不使用另一个线程,这具有最小的延迟,并具有内置的退避策略;)
  • 忙于等待消费者线程。
  • 如果消费者跟不上,则放慢生产者的速度。

您可能感兴趣的几个库是 Disruptor 库,它是一个支持忙等待的超低延迟环形缓冲区,以及我的一个库 Java Chronicle,它几乎免费为您提供所有消息/任务的持久性和您的消费者可以比您的生产者落后任何数量,几乎没有影响(例如,落后很多 GB)

CPU 缓存感知

这两个库都通过最小化产生的垃圾量来提高缓存利用率。ExecutorService 会产生一些垃圾,但迄今为止最大的延迟是唤醒消费者线程。

于 2013-04-26T21:52:08.740 回答