Java future<object> 池化

标签 java concurrency future

我有一个非常具体的应用程序架构问题。

我需要解析大量传入目的地,这些对象的解析是异步处理的,完成后需要将对象传递到下一阶段。

所以真正的问题归结为,处理大量 Future 对象的优雅方式是什么。

我是否应该将它们放入列表中,遍历该列表并在完成后删除它们?由于不断的并发访问,列表很可能会被活锁并成为一个大的瓶颈。

抱歉,如果我的问题措辞含糊。

最佳答案

如果您需要在任务完成后做某事,我会将该工作添加到任务中。也就是说,不是添加任务,而是添加一个 Runnable,它既执行任务又执行您需要对结果执行的操作。这样对结果的处理是及时和并发的。

关于Java future<object> 池化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21762826/

相关文章:

python - 来自 concurrent.futures 的 ProcessPoolExecutor 比 multiprocessing.Pool 慢

dart - StreamBuilder 限制

java - 使用计时器自动关闭 JOptionPane.showconfirmDialog

java - 仅使用 .get() 和 .size() 计算有序 ArrayList 中的部分匹配项

java - spring集成jms channel 设置并发消费者导致数据损坏

java - 从同一 session 同时请求同一端点会在 Play 中产生问题

java - 字符串拆分和包装

java - cxf 将源文件放在目标中但编译器看不到它们?

java - 下面的递归任务的实现是否正确?

scala - 处理 future 的理解 Scala