处理多个期货

processing several Futures

我有一个生成数百万个事件并将这些事件发送到服务器并接收每个事件的 Futures 的应用程序。为了防止应用程序 运行 内存不足,我将这些 Futures 放在 ArrayBlockingQueue 中,该队列由另一个线程处理。 我的应用程序发送这些事件的速度超过了它处理这些 Future 的速度,因此应用程序速度变慢了很多。

处理这些 Futures 的最佳方法是什么?

如果不知道您在应用程序中的需求是什么,就很难提出性能提示。

如果您通过固定线程池使用多个线程并精心选择最大线程数,也许您可​​以加快消耗速度(无限线程执行器也会减慢您的应用程序速度)。

重新思考应用程序结构的另一种方式。例如。在消费期货的过程中有没有可以重构的过程。

一些代码示例将有助于提供更具体的建议。