在java中并发处理多个文件

时间:2013-03-01 07:01:15

标签: java multithreading concurrency

我的要求是这样的。 有一个中央存储库,用户将放置多个xml文件, 我们的目录观察器服务(简单的java类)将获取xml文件并进行处理。

在这种情况下,我们如何进行并发处理? 我们应该进行逐个xml处理还是并发处理?

通常在实际项目中,我们应采取何种方法?

2 个答案:

答案 0 :(得分:0)

  

在这种情况下,我们如何进行并发处理?

目录监视器服务可以选择新文件并将它们放在队列中,其中多个线程拾取文件并根据需要对其进行操作。

  

我们应该逐个进行xml处理还是并发处理?

这取决于您希望处理完成的速度和其他因素 例如,整个处理是分开的还是处理需要访问其他已经存在的文件,您是否需要等待其他资源?

  

通常在实际项目中,我们应采取何种方法?

并发处理可能更快,但可能需要更多内存

答案 1 :(得分:0)

在这种情况下,你的最大成本将是IO,除非你用同样昂贵的数据做某事(比如与另一项服务交谈)

你可能会发现你产生了许多线程,而且大多数线程都没有做任何事情,因为你正在处理加载的(内存中)文件比实际加载它们更快。

如果你真的通过实施并发方法获得任何东西,我建议你先看看你是否真的需要这样做。您可能会发现在吞吐量方面没有获得任何有意义的东西,但是您已经获得了额外的代码复杂性。