加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 对于同一个ifstream,你有多个“游标”吗?这是线程安全的吗

发布时间:2020-12-16 06:53:32 所属栏目:百科 来源:网络整理
导读:我有多个线程,我希望每个线程都处理我的文件的一部分.我可以为此设置一个ifstream对象并使它们同时读取读取不同的部分吗?这些部分不重叠,因此两个线程不会处理同一行.如果是,如何获得多个游标? 解决方法 单个std :: ifstream只与一个游标相关联(有一个与st
我有多个线程,我希望每个线程都处理我的文件的一部分.我可以为此设置一个ifstream对象并使它们同时读取读取不同的部分吗?这些部分不重叠,因此两个线程不会处理同一行.如果是,如何获得多个游标?

解决方法

单个std :: ifstream只与一个游标相关联(有一个与std :: ifstream直接关联的seekg和tellg方法).

如果你想同的std :: ifstream的对象翻过多个线程共享,你就必须有某种形式的线程之间的同步机制,这可能打败目的(在每个线程,你必须锁定,寻求,每次读取和解锁).

要解决您的问题,您可以为每个线程打开一个std :: ifstream到同一个文件.在每个帖子中,你都会寻找你想要开始阅读的任何位置.这只需要你能够“轻松”计算每个线程的搜索位置(注意:这是一个非常强烈的要求).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读