026-多线程简介

声明:我的所有文章,都是对网上教学视频的整理,包括狂神说、尚硅谷、黑马程序员等等,用来作为参考资料,无任何商业使用,请广大网友参考,不喜勿喷,谢谢。(注意,由于网站的原因,有些代码字符可能会出现问题,建议大家阅读代码时,最好和下面的图片对应来看)
一、基本概念
1、程序:是为完成特定任务,用某种语言编写的一组指令的集合,即指一段静态的代码,静态对象。
2、进程:是程序的一次执行过程,或是正在运行的一个程序,是一个动态的过程,有它自身的产生、存在和消亡的过程(生命周期)。如:运行中的QQ,程序是静态的,进程是动态的,进程作为资源分配的单位,系统在运行时会为每个进程分配不同的内存区域。
3、线程:进程可以进一步细化为线程,是一个程序内部的一条执行路径。
1)若一个进程同一时间并行执行多个线程,就是支持多线程的。
2)线程作为调度和执行的单位,每个线程拥有独立的运行栈和程序计数器(pc),线程切换的开销小
3)一个进程中的多个线程共享相同的内存单元/内存地址空间->它们从同一堆中分配对象,可以访问相同的变量和对象。这就使得线程间通信更简便、高效,但多个线程操作共享的系统资源可能就会带来安全的隐患。
026-多线程简介
026-多线程简介
二、使用多线程的优点
背景:以单核CPU为例,只使用单个线程先后完成多个任务(调用多个方法),肯定比用多个线程来完成用的时间更短,为何仍需多线程呢?
多线程程序的优点:
1、提高应用程序的响应,对图形化界面更有意义,可增强用户体验
2、提高计算机系统CPU的利用率
3、改善程序结构,将既长又复杂的进程分为多个线程,独立运行,利于理解和修改
三、何时需要多线程
1、程序需要同时执行两个或多个任务
2、程序需要实现一些需要等待的任务时,如用户输入、文件读写操作、网络操作、搜索等
3、需要一些后台运行的程序时

猜你喜欢

转载自blog.51cto.com/12859164/2564210