开发者社区> 问答> 正文

C++多线程写文件问题:报错

例如:

有一个1G的文件在服务器上;

采用了4个线程,分别下载 文件的4个部分;

大家谈谈 有必要 这样做吗?大文件 并发 分段 下载;

主要考虑下载效率问题;

看到有观点说 因为磁盘IO 的关系, 这样的效率反而不如 单线程写文件;

请问:

你们有什么观点 , 有些什么更好的方法?

展开
收起
kun坤 2020-06-09 23:24:18 1081 0
1 条回答
写回答
取消 提交回答
  • 1.多线程写东西必然涉及加锁。

    2.磁盘IO现在一般一个核也能把写入负载跑满,多核实在无意义。

    3.分段并发下载,迅雷这些就是喜欢这样玩,但是水管就那么大,合适就行。

    ######的确加锁了。传了个400M的文件上来; 可是 文件管理器 显示的文件大小却只有200多M;问题就在于 这个锁 该加在哪里?若同一时间内只有一个 线程写入,拿就是串行了; 我只做了在 ofstream open 的时候 加锁; 也就是多个线程 有 多个 ofstream 实例; 不知道错在哪里; 打印显示 上传的各个区块都没有应该没有问题;(在没有其他问题的情况下 才考虑这个问题)######临界区还行
    2020-06-10 09:34:52
    赞同 展开评论 打赏
问答分类:
C++
问答地址:
问答排行榜
最热
最新

相关电子书

更多
使用C++11开发PHP7扩展 立即下载
GPON Class C++ SFP O;T Transce 立即下载
GPON Class C++ SFP OLT Transce 立即下载