正在寻找ExecutorService
,例如ThreadPoolExecutor
或ForkJoinPool
,但将任务添加到工作队列并将其排队执行的延迟时间最短。
非常希望它能够识别CPU缓存&具有可调节的退避策略和螺纹工厂。
或至少是烹饪它的部分的最好例子。
答案 0 :(得分:4)
将任务添加到工作队列并使其出列以执行的最小延迟。
这些库都具有相同的延迟,这主要取决于您拥有的硬件和操作系统(因为它执行线程调度)
没有影响延迟的具体选项。
其他选项包括使用;
您可能感兴趣的几个库是Disruptor库,它是一个支持繁忙等待的超低延迟环形缓冲区,以及我的库,Java Chronicle,它几乎可以免费为您提供所有消息/任务的持久性并且您的消费者可以是生产者背后的任何数量,并且没有任何影响(例如,许多GB背后)
CPU缓存感知
这两个库都通过最小化生成的垃圾量来提高缓存利用率。 ExecutorService会产生一些垃圾,但到目前为止,最大的延迟是唤醒消费者线程。