linux下C++ 如何实现一个线程读,一个线程负责处理记录

qiuzhuoxian 2010-10-25 02:46:12
现在要处理磁盘上的多个文件中的每条记录,保守的做法是逐行读,然后逐行处理,循环直到读完,但觉得这样似乎很慢。
想采用另外一种模式,一个线程负责将记录逐行读到一个容器中,另一个线程去找个容器中取数据,然后进行处理,不知道这种模式是否会高效,如何实现。希望高手们提提意见?
...全文
186 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
冻结 2010-10-25
  • 打赏
  • 举报
回复
想采用另外一种模式,一个线程负责将记录逐行读到一个容器中,另一个线程去找个容器中取数据,然后进行处理,不知道这种模式是否会高效,如何实现。希望高手们提提意见?
这种模式楼主可以参考“生产者消费者模式“,“半同步半异步模式“
不过楼主这里就两个线程,简单同步即可,
而简单同步,已经把并行运算变成串行运算,
而且多出来线程调度,线程同步开销,
应该不予考虑。

逐行读,逐行处理即可,性能不是问题。
也可,先将所有文件读入内存,然后进行内存运算。

justkk 2010-10-25
  • 打赏
  • 举报
回复
感觉没有必要用多线程,那还需要线程之间的同步机制
文件的读取应该很快的

64,649

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧