java - 并发文件处理

标签 java multithreading parallel-processing

我有一个目录,里面有很多动态保存的文件。目前有一个任务会不时列出文件并按顺序处理它们(写入数据库)。由于文件数量的增加,有必要对这些文件进行并行处理。你能给我一些想法和 Java 代码示例吗?

最佳答案

使用 ExecutorService。创建一个 Executors.newFixedThreadExecutor(n); 您可以将文件处理变成一个可运行(或可调用)的任务,并让它传入一个您可以处理的文件

ExecutorService service = Executors.newFixedThreadExecutor(10);

for(final File file : directory.listFiles()){
   service.submit(new Runnable(){
        public void run(){
             //do work here on file object
        }
   });
}

关于java - 并发文件处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5247458/

相关文章:

java - 使用 RegEx 查找两个 XML 标记之间的所有内容

java - 在 Java 中如何判断一个数字是否在一个范围内? Math.abs(num1-num2) <= inRange 的问题

c# - 如何关闭第二个 UI 线程

java - 一个主机线程中的多个线程修改主机线程中的同一对象

c - OpenMP 并行代码较慢

java - 为什么listiterator中的hasPrevious()和add()组合会进入无限循环,而hasNext()和add()则不会?

java - 端点的 Camel 处理器

C#:异常后停止线程

c++ - 在 openacc 中为每个帮派进行递归的私有(private)数组

Java Stream 有状态行为示例