我的使用场景需要通过网络同时给多台设备升级,每台设备创建一个单独的线程来处理,但是只有一个线程可以读取成功,多个线程一起读的时候就挂掉了,有没有这方面处理经验的可以指点下?
你的文件在服务器上吗?然后服务器是多线程的还是单线程实现的?######我的文件在本地######
如果文件不大,你应该以字节流的形式加载文件到内存,然后多线程同时读取,相当于批量上传前,单线程加载弄个进度条。否则多线程读取及时做到了(在读取文件时不启用锁定文件的方式)如果太多线程读取也会造成读取效率很低
######目前问题已经解决了,我刚开始的描述可能有些不准确,Qt的文件读操作(只有读操作,写不行)是线程安全的,我一开始并不是使用多个线程进行读取的,所以会出现错误。现在使用线程类重新把之前的业务流程修改了下,暂时没有什么问题了。 你的办法应该还可以进一步提高整体效率,后边需要优化的时候会考虑。感谢你的思路分享。######正解######多线程读取文件的时候你可以给文件加锁 如果有锁sleep1 没有锁就执行业务代码 然后释放锁版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。