什么情况下使用多线程
Posted smallstrange
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么情况下使用多线程相关的知识,希望对你有一定的参考价值。
如果你的应用程序需要采取以下的操作,那么你尽可在编程的时候考虑多线程机制:
(1) 连续的操作,需要花费忍无可忍的过长时间才可能完成
(2) 并行计算
(3) 为了等待网络、文件系统、用户或其他I/O响应而耗费大量的执行时间
所以说,在动手之前,先保证自己的应用程序中是否出现了以上3种情形。
为什么需要多线程(解释何时考虑使用线程)
从用户的角度考虑,就是为了得到更好的系统服务;从程序自身的角度考虑,就是使目标任务能够尽可能快的完成,更有效的利用系统资源。综合考虑,一般以下场合需要使用多线程:
1、 程序包含复杂的计算任务时
主要是利用多线程获取更多的CPU时间(资源)。
2、 处理速度较慢的外围设备
比如:打印时。再比如网络程序,涉及数据包的收发,时间因素不定。使用独立的线程处理这些任务,可使程序无需专门等待结果。
3、 程序设计自身的需要
WINDOWS系统是基于消息循环的抢占式多任务系统,为使消息循环系统不至于阻塞,程序需要多个线程的来共同完成某些任务。
多线程的缺点:
1. 如果有大量的线程,会影响性能,因为操作系统需要在它们之间切换.
2. 更多的线程需要更多的内存空间
3. 线程中止需要考虑对程序运行的影响.
4. 通常块模型数据是在多个线程间共享的,需要防止线程死锁情况的发生
以上是关于什么情况下使用多线程的主要内容,如果未能解决你的问题,请参考以下文章
为什么ArrayList线程不安全?为什么ArrayList在多线程情况下会报ConcurrentModificationException?