线程的概念和特点
学前自问:什么是线程?为什么要引入线程?
线程的引入
在OS中引入进程的目的是为了使多个程序能并发执行,以提高资源利用率。
在OS中引入线程是为了减少程序在并发执行时所付出的时空开销,使OS具有更好的并发性。
进程的局限性
进程的属性
1.进程是一个可拥有资源的独立单位。
2.进程是一个可独立调度和分派的基本单位。
进程的局限性
各个进程的内存地址空间相互独立,只能通过请求操作系统内核的帮助来完成进程间的通信。
由于进程是一个资源的拥有者,因而在创建、撤销和切换中,OS必须要为之付出较大的时空开销,这就限制了系统中所设置进程的数目,而且进程切换也不宜过于频繁,从而限制了并发程度的进一步提高。
进程间通信必须请求操作系统服务,开销大。
而同进程下的线程间通信,无需操作系统干预,开销更小。
线程–作为调度和分派的基本单位
线程是进程中的一个执行单位,负责当前进程中程序的执行,一个进程中至少有一个线程。
线程又被称为轻型进程或进程元。
引入线程机制后,并发带来的系统开销降低,系统并发性提高。
线程与进程的联系区别
同一进程下的各个线程共享内存地址空间,可直接读/写内存空间进行通信,无需操作系统干预,线程间通信开销小。
同一进程的各线程间并发不需切换进程运行环境和内存地址空间。
从属于同一进程的各个线程共享进程拥有的资源。
从属于不同进程的线程间通信,也需要操作系统干预。
线程的特点
- 线程是处理机调度和分派的单位,进程是资源分配的单位。
- 同一进程的各个线程共享进程拥有的资源
- 同一进程内的线程切换不会导致进程切换
- 引入线程后,进程是资源分配的基本单位,而线程几乎不拥有资源,只拥有极少量的资源(线程控制块TCB、寄存器信息、堆栈等)
- 线程不占有内存空间,它包括在进程的内存空间中。
线程的状态
执行、就绪、阻塞
回答什么是线程?为什么要引入线程
什么是线程:轻量级进程,是操作系统进行调度的最小单位。
为什么要引入线程:线程可以提高系统的并发性。