您的位置:首页 > 其它

初窥多线程:多线程的优点、缺点 以及 应用场合

2011-05-20 16:44 330 查看
最近有个任务涉及到多线程编程,就在网上了解了一些多线程的相关内容,总结如下。

优势:
·在一些需要等待的任务实现上如用户输入、文件读写和网络收发数据等,线程就比较有用了。在这种情况下可以释放一些珍贵的资源如内存占用等等。
·程序的运行速度可能加快  

劣势:

(1)等候使用共享资源时造成程序的运行速度变慢。这些共享资源主要是独占性的资源 ,如打印机等。因此,如果能够单任务实现的应用场合,没有必要加入多线程技术。

(2)对线程进行管理要求额外的 CPU开销。线程的使用会给系统带来上下文切换的额外负担。当这种负担超过一定程度时,多线程的特点主要表现在其缺点上,比如用独立的线程来更新数组内每个元素。

(3)线程的死锁。即较长时间的等待或资源竞争以及死锁等多线程症状。

(4)对互斥对象的访问,需要一定的开销做到线程同步管理。

使用场合:
大多情况下,要用到多线程的主要是

A、耗时或大量占用处理器的任务,阻塞用户界面操作。

B、各个任务必须等待外部资源(如远程文件或 Internet连接)。
比如:读写文件、视频图像的采集、处理、显示、保存等。

举例:
比如下载文件,你要一边下载一边显示进度一边保存,在这种情况下,如果没有用多线程的话,没有意外的话一般都会把主线程阻塞,比如进度条的进度根本没有随着已下载的量而变化,堪至是整个窗体都动不了,用多线程就可以很好地解决这个问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: