场景
一个100多万条的csv文件, 读取, 每行要处理, 处理时间平均每行250ms±.
- 方案一: 每读一行, 处理一行, 处理好了, 读下一行.
- 方案二: 一次读取出来, 放入内存, 然后遍历处理每一行.
后来, 发现一个java进程不够跑, 想多开几个, 发现开了3个的时候, Linux会自动给我杀死1-2个.
请问, 这种场景, 应该哪种方案更合理些? 原理又是什么呢?
一个100多万条的csv文件, 读取, 每行要处理, 处理时间平均每行250ms±.
后来, 发现一个java进程不够跑, 想多开几个, 发现开了3个的时候, Linux会自动给我杀死1-2个.
请问, 这种场景, 应该哪种方案更合理些? 原理又是什么呢?
4 回答1.1k 阅读✓ 已解决
4 回答1.1k 阅读✓ 已解决
1 回答2.5k 阅读✓ 已解决
2 回答691 阅读✓ 已解决
2 回答1.7k 阅读
2 回答1.6k 阅读
2 回答1.3k 阅读
使用
Scanner
读取文件流,nextLine()
获取文件行,封装处理逻辑到任务(task)放到线程池中处理。