【发布时间】:2013-09-05 17:23:41
【问题描述】:
我们使用 JDK 7 watchservice 来监视可以包含 xml 或 csv 文件的目录。这些文件被放入线程池中,然后被处理并推送到数据库中。这个应用程序将永远运行并监视目录并在可用时保持处理文件。 XML 文件很小,不需要时间,但是每个 csv 文件可以包含超过 80,000 条记录,因此处理需要时间才能放入数据库。当从线程池处理 15 个 csv 文件时,Java 应用程序会出现内存不足错误。当csv文件进入线程池时,有什么方法可以串行处理,即一次只能处理一个。
【问题讨论】:
-
用
Executors#newSingleThreadExecutor()怎么样? -
确实需要为 csv 文件创建单独的执行程序...... newSinglethreadExecutor() 似乎做得很好......任何例子都会很棒..
标签: java multithreading concurrency threadpool watchservice