首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何实现文件读写并行化

如何实现文件读写并行化
EN

Stack Overflow用户
提问于 2010-01-03 10:09:45
回答 3查看 16K关注 0票数 10

我有一个程序,从2个文本文件读取数据,然后将结果保存到另一个文件。由于有许多数据需要读取和写入,这会对性能造成影响,因此我希望并行读取和写入操作。

我最初的想法是,以两个线程为例,一个线程从开头读/写,另一个线程从文件中间读/写。由于我的文件格式化为行,而不是字节(每行可能有不同的数据字节),因此按字节查找对我不起作用。我能想到的解决方案是使用getline()先跳过前面的行,这可能效率不高。

有没有什么好方法可以在文件中查找到指定的行?或者你有没有其他的想法来并行文件读写?

环境: Win32、C++、NTFS、单硬盘

谢谢。

-Dbger

EN

Stack Overflow用户

发布于 2010-01-04 00:57:17

这并不是对你问题的真正回答,而是一种重新设计(我们都讨厌但又忍不住要这么做)。如前所述,尝试使用多线程来加速硬盘上的I/O可能不会有什么帮助。

然而,根据数据敏感度、吞吐量需求、数据大小等,可以使用另一种方法。在内存中创建一个结构来维护数据的图片并允许轻松/快速地更新数据中任何位置的文本行并不困难。然后,您可以使用一个专门的线程来简单地监视该结构,并将数据写入磁盘。按顺序将数据写入磁盘可能非常快;它可能比随机查找不同部分并将其分片写入要快得多。

票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1993699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档