进程与线程
进程
是程序的一次执行过程,或是正在运行的一个程序。是一个动态 的过程:有它自身的产生、存在和消亡的过程。例如运行的QQ,微信。
线程
进程可以进一步细化为线程,进程中独立运行的子任务就是一个线程。例如微信有文本聊天,图片下载,文件下载,都可以独立运行。若同时运行则称为多线程。
多线程
若一个进程同一时间并行执行多个线程,就是支持多线程的。
并行和并发
并行
多个CPU同时执行多个任务。相当于多个人同时做不同的事情。
并发
宏观上一个CPU同时执行不同的任务。微观上并不是同时执行,只是将时间分成若干个,使多个线程快速的交替执行,以便达到宏观上的同时执行。例如秒杀:多个人做同一件事情。
为什么要使用多线程
多线程可以有效的提高应用程序的性能,便于减低开发和维护的成本。
1,提高应用程序的响应
对于图像化界面更有意义,例如QQ聊天时,想同时视频聊天和下载传输过来的图片时,用多线程可增强用户的体验。
2,提高计算机系统CPU的利用率
对于单线程来说,当程序在等待某个同步操作的时候,处理器处于空闲状态。降低CPU的利用率。若是多线程的时候,则可以在等待的同时,开启另一个线程。
3,改善程序结构
将既长又复杂的进程分为多个线程,独立运行,利于理解和修改。
什么时候需要多线程
1,程序需要同时执行两个或者多个任务的时候。
2,程序需要实现一些需要等待的任务的时候。用户输入,文件读写,网络操作,搜索等。
3,需要一些后台运行的程序的时候。