我有一个非常具体的应用程序架构问题。
我需要解析大量传入目的地,这些对象的解析是异步处理的,完成后需要将对象传递到下一阶段。
所以真正的问题归结为,处理大量 Future 对象的优雅方式是什么。
我是否应该将它们放入列表中,遍历该列表并在完成后删除它们?由于不断的并发访问,列表很可能会被活锁并成为一个大的瓶颈。
抱歉,如果我的问题措辞含糊。
最佳答案
如果您需要在任务完成后做某事,我会将该工作添加到任务中。也就是说,不是添加任务,而是添加一个 Runnable,它既执行任务又执行您需要对结果执行的操作。这样对结果的处理是及时和并发的。
关于Java future<object> 池化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21762826/