我有一个应用程序可以生成数百万个事件并将这些事件发送到服务器并接收每个事件的Futures。为了防止应用程序内存不足,我将这些Futures放在ArrayBlockingQueue
中,并且该队列由另一个线程处理。
我的应用程序发送这些事件的速度快于处理这些Futures的速度,因此应用程序的运行速度相当慢。
处理这些期货的最佳方法是什么??
答案 0 :(得分:0)
如果不知道您在应用程序中的需求,很难提出性能提示。
如果您使用多个线程通过固定线程池并使用精心选择的最大线程数(无限制的线程执行程序也会降低您的应用程序速度),也许您可以加快消耗。
重新考虑应用程序结构的另一种方法。例如。在消费期间,期货有任何过程可以重构以便以后做。
一些代码示例有助于提供更具体的建议。