1)线程是什么网络
2)引入线程有什么用并发
3)为何引入线程spa
20世纪60年代提出进程的概念,在操做系统中一直都是以进程做为独立运行的单位操作系统
20世纪80年代中期,在操做系统领域,提出了比进程更小的能独立运行的基本单位---线程线程
1)为了使多个程序并发执行 进程
2)改善资源利用率图片
3)提升系统吞吐量内存
从内存管理的角度看资源
一个系统多个进程,他们都会使用内存,为了确保内存互不影响,内存大小位置都是固定的;内存管理
进程间互相不影响,一个进程崩溃了,不影响其余进程
你能够在window系统上边一边听音乐,一边玩QQ,
听音乐开个一个进程,玩QQ开个一个进程
1)提升系统的并发性
若是咱们把运行在操做系统的程序,好比QQ看做一个进程,那么程序执行不可能一个分支,
你可能用来传输文字A,发送图片B
具体的执行就是
1) QQ获取CPU上下文
2)开始执行QQ中的传输文件A
3)执行QQ中的发送图片B
4)CPU保存QQ的上下文
执行A B时共享了QQ的资源,CPU没有进行上下文切换 A B就是线程
咱们首先从进程谈起,进程有两个基本属性
1)进程是一个能够拥有资源的独立单位
2)进程同时也是一个能够独立调度和分配的基本单位
所谓的资源就是计算机里的中央处理器,内存,文件,网络等等。
因此进程能够并发执行
为了使线程能够并发执行,系统还必须进行以下操做
1)建立进程
系统在建立进程时,必须分配必须的,除处理机之外的全部资源;
内存空间;IO设备,进程控制块PCB
2)撤销进程
系统在撤销进程时,必须对这些资源进行回收,并撤销PCB块
3)进程切换
在对线程进行切换时,须要保存当前进程的CPU环境和须要切换的进程的CPU上下文
思考?
是否能够把进程的两个属性分开,
做为系统独立调度和分配和单元,而不独立分配资源,产生了线程
在引入线程的系统中,线程是进程的一个实体,是被系统独立调度和分配的基本单位,
线程本身不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈)
但它能够和同属同一个进程的其余线程共享进程的所有资源
一个线程能够建立和撤销另外一个线程
同一进程的多个线程能够并发执行
因为线程之间相互制约,线程运行时会出现间断
线程通常拥有就绪 阻塞 执行三种基本状态
有些系统可能线程还有终止状态