• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

简单的线程池实现多线程对大文件的读取

php 搞代码 4年前 (2022-02-28) 25次浏览 已收录 0个评论

上代码

package ThreadLearning;

import java.io.*;
import java.util.ArrayList;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

/**

  • @author kyojurorengoku
  • @date 2022/1/20
  • @Description
    */

public class LstFileAnalysis {

static String fileUrl = "";
static File file = new File(fileUrl);
static InputStreamReader isr;

static {
    try {
        isr = new InputStreamReader(new FileInputStream(file));
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
}

public static void main(String[] args) throws IOException {
    ExecutorService executorService = Executors.newFixedThreadPool(4);
    BufferedReader read = new BufferedReader(isr);
    String line = "";
    long l = System.currentTimeMillis();
    while ((line = read.readLine()) != null) {
        String[] split = line.split("\s+");
        if (split.length == 0) {
            break;
        }
        Runnable task = new Task(line);
        executorService.execute(task);
    }
    long l1 = System.currentTimeMillis();
    System.out.println((l1 - l));
}

}
复制代码
Task类 提供一个简略的思路: 1、读取进去的数据处理过后存入数据库[写在run办法里就行]

package ThreadLearning;

import java.util.List;

/**

  • @author kyojurorengoku
  • @date 2022/1/20
  • @Description
    */

public class Task implements Runnable {

private String line;

public Task(String line) {
    this.line = line;
}

@Override
public void run() {

// System.err.println(Thread.currentThread().getName() + ” ” + line);

}

}
最初
如果你感觉此文对你有一丁点帮忙,点个赞。或者能够退出我的开发交换群:1025263163互相学习,咱们会有业余的技术答疑解惑

如果你感觉这篇文章对你有点用的话,麻烦请给咱们的开源我的项目点点star:http://github.crmeb.net/u/defu不胜感激

PHP学习手册:https://doc.crmeb.com
技术交换论坛:https://q.crmeb.com


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:简单的线程池实现多线程对大文件的读取

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址