两个java进程同时读取一个文件(持续时间较长)会影响磁盘效率吗?
场景
一个100多万条的csv文件, 读取, 每行要处理, 处理时间平均每行250ms±.
- 方案一: 每读一行, 处理一行, 处理好了, 读下一行.
- 方案二: 一次读取出来, 放入内存, 然后遍历处理每一行.
后来, 发现一个java进程不够跑, 想多开几个, 发现开了3个的时候, Linux会自动给我杀死1-2个.
请问, 这种场景, 应该哪种方案更合理些? 原理又是什么呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用
Scanner
读取文件流,nextLine()
获取文件行,封装处理逻辑到任务(task)放到线程池中处理。