线程的概念
线程是比进程更小的、能够独立运行的基本单位。用于进一步提高程序并发执行的程度,降低并发执行的时空开销。
线程的引入
进程是实现系统并发运行的一种实体。获取处理器资源的时,叫做进程调度
,创建进程、调度进程、管理进程都会有很大的额外开销,为了减小额外的开销,保持系统的并发性,现代操作系统将资源的申请和调度分开,进程作为资源的申请和拥有单位,线程作为调度的基本单位。
线程拥有其进程的所有资源
线程是进程中的一个实体,是被系统独立调度的基本单位,线程本身基本上不拥有资源,只拥有一些运行中必不可少的资源(比如程序计数器、栈、寄存器等),但是它可以与同属一个进程的其他线程共享进程所拥有的全部资源。
线程的定义
线程定义线程是进程中的一个实体,是可独立参与调度的基本单位,一个进程可以有一个或者多个线程,他们共享所属进程所拥有的资源。
线程具有如下属性:
- 多个线程可以并发执行
- 一个线程可以创建另一个线程
- 线程具有动态性,一个线程被创建之后就开始了他的生命周期,可能处于不同状态,直到死亡。
- 每个线程都有自己的数据结构,即
线程控制块
,记录了有关于线程的各种信息。 - 在同一个进程内,所有线程共享同一个地址空间(即所属进程的存储空间)
- 一个进程中的线程在另一个进程中是不可见的。
- 同一个进程内的线程之间的通信主要是基于全局变量进行的。
线程的状态
与进程类似,线程也具有生命周期。
线程的状态有:运行、就绪、等待
。
线程不是资源的拥有单位,挂起状态对线程是没有意义的。
进