【发布时间】:2012-11-30 11:17:54
【问题描述】:
我有一个要实现的功能,我正在考虑使用 FutureTask 和可调用的 calsses。只是想验证我是否可以使用它,以及在这种情况下使用这些类是否正确。 这里是:我正在使用 struts spring hibernate 开发一个 Web 应用程序。我必须上传一个包含大约 40 列/字段和大约 1000 行的 excel/.csv/.txt 类型的文件。我必须处理该行的每一行和每个字段。这将包括以下子任务:
- 从单元格/字段中获取数据
- 验证 maxlenght 、required 等数据。
- 如果该行不符合特定条件,则丢弃该行。
- 为每一行创建一个 VO 并用数据填充一个 VO
- 存储 VO。
所以,我正在考虑为每个行处理使用未来的任务以使其成为多线程。我面临的问题是如何等待所有任务完成,因为我想发送带有最终结果的响应。只是我想让处理速度更快,而不是实际的响应时间。
【问题讨论】:
-
考虑使用倒计时锁存器,随着每个任务完成,然后可以指示,然后一旦所有任务都完成,那么您的执行主线程可以继续。我应该想象一下(除非每一行都需要相当长的时间才能完成),线程和任何锁争用都会使您的处理速度比单个线程完成所有工作要慢......
-
即使我的处理器是多核的也会让它变慢
-
你应该先尝试一下,如果有问题你应该问。有大量网站可供学习使用。你可以参考 Brain Goetz 的 Java Concurrency in Practice
-
@Narendra Pathai:典型的印度人的反应。如果我知道我会采取的方法。如果有任何问题,我会问具体问题。如果您知道答案,那么请帮助我,否则本次讨论中不需要您。谢谢
标签: java multithreading callable futuretask