社区
C#
帖子详情
我用多线程实现了一个文件转换功能,为什么转换速度还是没有提高呢,和单线程一样
lingling_jy
2012-05-29 12:53:15
请高手指点下!
...全文
148
7
打赏
收藏
我用多线程实现了一个文件转换功能,为什么转换速度还是没有提高呢,和单线程一样
请高手指点下!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
CSharpProgrammer
2012-05-30
打赏
举报
回复
楼主,转换文件一般瓶颈都在磁盘IO上,你换个固态硬盘试试就知道了。
dceacho
2012-05-29
打赏
举报
回复
[Quote=引用 5 楼 的回复:]
你可以给我再讲具体一点吗? 谢谢
[/Quote]
4楼说的比较容易理解了
并行工作时发生资源等待和资源争夺的情况几率有多大
例如的文件转换需要操作IO,但即使你线程多了,你IO读写速度还是那么多,这取决于硬件不由你线程决定.
这样就会出现一线程等待另一线程释放IO的控制权,从而不能明显提高速度
lingling_jy
2012-05-29
打赏
举报
回复
你可以给我再讲具体一点吗? 谢谢
绝代坏坏
2012-05-29
打赏
举报
回复
理论上来说多线程是否能提高程序执行效率。这取决于以下几个条件,程序是否有耗时操作,程序是否可并行工作,并行工作时发生资源等待和资源争夺的情况几率有多大。如果不能满足以上几个条件,那么使用多线程往往会增加调度成本,反而会降低程序的运行效率。至于楼上说的cpu的数量问题。应该是对多线程理解不够透彻,可以无视。
tanta
2012-05-29
打赏
举报
回复
如果文件较小的话,你可以先将文件读取到内存中,然后启动多线程处理,在多核的处理器上,速度应该有一定的提升。
bdmh
2012-05-29
打赏
举报
回复
谁告诉你线程会提高速度的,单cpu只会降低速度,只有在你cpu数量多于线程时,才会并行工作
__天涯寻梦
2012-05-29
打赏
举报
回复
如果 CPU 多核并且运算复杂能并行,多线程才会提高效率,如果大部分时间都是文件读取和写入,那效率就取决于磁盘I/O能力,多线程就没什么效果了。
机械三维3D设计图-端子插头加热设备sw20可编辑.zip
机械专业毕业设计参考下载|零部件三维设计图|机械设计CAD图纸素材|工程制图机械图纸可编辑
机械三维3D设计图-海绵磨球机sw20可编辑.zip
机械专业毕业设计参考下载|零部件三维设计图|机械设计CAD图纸素材|工程制图机械图纸可编辑
6工位盘贴合机sw20可编辑.zip
适用于毕业设计参考 3d建模类
前端JavaScript与Node.js全栈工程化及性能调优实践清单开源资料包
本资源整理自面向生产环境的Node.js全栈工程化实践清单,覆盖项目结构、代码风格、依赖与安全、测试策略、部署运维、性能与可靠性等主题,条目化便于查阅。适合开发者自学体系化补齐知识,也可作为团队内部工程规范与Code Review的对照参考。仅供站内学习交流使用,请遵守资源包内许可说明;描述不含任何外部平台链接。
机械三维3D设计图-斜轴式轴向柱塞泵sw13可编辑.zip
机械专业毕业设计参考下载|零部件三维设计图|机械设计CAD图纸素材|工程制图机械图纸可编辑
C#
111,126
社区成员
642,541
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章