开发者社区> 问答> 正文

qt5 如何多个线程读取同一个文件:报错

我的使用场景需要通过网络同时给多台设备升级,每台设备创建一个单独的线程来处理,但是只有一个线程可以读取成功,多个线程一起读的时候就挂掉了,有没有这方面处理经验的可以指点下?

展开
收起
kun坤 2020-06-07 14:23:48 1185 0
1 条回答
写回答
取消 提交回答
  • 你的文件在服务器上吗?然后服务器是多线程的还是单线程实现的?######我的文件在本地######

    如果文件不大,你应该以字节流的形式加载文件到内存,然后多线程同时读取,相当于批量上传前,单线程加载弄个进度条。否则多线程读取及时做到了(在读取文件时不启用锁定文件的方式)如果太多线程读取也会造成读取效率很低

    ######目前问题已经解决了,我刚开始的描述可能有些不准确,Qt的文件读操作(只有读操作,写不行)是线程安全的,我一开始并不是使用多个线程进行读取的,所以会出现错误。现在使用线程类重新把之前的业务流程修改了下,暂时没有什么问题了。 你的办法应该还可以进一步提高整体效率,后边需要优化的时候会考虑。感谢你的思路分享。######正解######多线程读取文件的时候你可以给文件加锁 如果有锁sleep1 没有锁就执行业务代码 然后释放锁

    2020-06-07 14:23:52
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
多IO线程优化版 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载

相关镜像