linux - 一个关于多进程分块读写大文件的问题
天蓬老师
天蓬老师 2017-04-17 11:22:58
[Linux讨论组]

问题是这样的:
有一个比较大的文件file1 , 它的内容格式是一行一行的 , 比如

1|123|abc
2|212|lca
3|123|asd
x
x
x

现在,我想用多个进程同时分块读取文件 ,分别处理 。 那么怎么做才能保证每个进程分到的块正好是完整的一行。

刚刚接触这一块的东西,还望指导。

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(3)
ringa_lee

如果是为了提高效率,分进程读是没有什么意义的,因为这个快不快主要取决于磁盘的IO,如果你为了分行还需要进行特殊处理的话,不可避免的大量随机读。还不如用一个进程顺序读入,然后切割分给n个进程进行处理。说实话如果处理逻辑不是很复杂的话,提高IO的效率比搞几个进程好。提高IO的效率还是多用用操作系统的特性吧。`

黄舟

分块后,除了第一个进程外,其它进程从中间某个地方向后读到换行符,然后再一行行地读并处理。

不过,你的文件存储在什么设备上?你是处理每一行数据会花很多时间,还是觉得多进程读同一文件会比单进程更快?

黄舟

得到文件大小, 再均匀分配给每个进程....设置偏移和大小就行

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号