多线程一定比单线程快吗?

在Windows编程中,多线程一定比单线程快吗?什么时候该用多线程?什么时候该用单线程?它们各自的应用场景是什么?

4个回答

使用多线程的两个典型的场景:
(1)并发,通过并发实现对低速io访问的延迟隐藏,以及防止界面的阻塞。典型场景,多线程下载,后台打印等等。
(2)并行,当系统上有超过1个CPU的时候,通过并行算法让每个处理器执行计算任务的一部分,共同完成计算来提高速度。
多线程编程的缺点:
(1)线程切换是有开销的,这会导致程序运行变慢。
(2)多线程程序必须非常小心地同步代码,否则会引起死锁。
(3)多线程程序极难调试,并且一些bug非常隐蔽,可能你99次运行都是对的,但是有1次是错的。不像单线程程序那么容易暴露问题。

所以,如非必要,对于初学者,尽量避免不必要的情况下使用多线程。

简单说吧。理论上,多线程比单纯线程快。

一个程序,自身主线程,就是一个线程。多线程操作,就是在主线程的基础上,再开线程。这样,你的操作分配CPU就会多一份,速度要快一点。

但是,当系统只有你的程序在执行。其它软件战胜的CPU大的情况下。你的主线程分配的CPU时间,与你多开线程战胜的CPU时间,相关不大,也就速度上差不多了。

程序什么时候应该使用线程,什么时候单线程效率高
http://blog.csdn.net/cutely606/article/details/6954438

不是绝对的,多线程有可能会有一些线程切换带来的额外开销

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐