关于线程的一些理解(一)
线程的基本概念
引入进程的目的
更好地使多道程序并发执行,以提高资源的利用率和系统的吞吐量,提高并发的程度。
引入线程的目的
减小程序在并发执行时所付出的时间和空间开销,提高操作系统的并发性能。
线程的定义
线程可以理解为一种轻量级的进程,是操作系统分配CPU资源的最小单位(如果这个操作系统支持多线程),举一个简单的例子:
有一天,老王正在上班,突然觉得头晕,无法继续工作,便向老板请假。老板说:“我还不能批准你的请假。虽然你现在头晕,脑袋没有办法正在工作了,但是你的手脚总还是利索的吧。那你就在地上爬让我开心开心。”
在上面这个例子中,老王就相当于一个进程,老王的脑袋、手、脚等等都相当于进程中个线程。
线程的组成
线程的组成包括:
- 线程ID
- 程序计数器
- 寄存器集合
- 堆栈
线程的资源
线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,它与同属于一个进程的其他线程共享进程所拥有的资源。
引入线程的概念后,进程的内涵发生了一些变化,进程只作为除了CPU以外的系统资源的最小分配单元,而CPU资源的最小分配单元变为线程。
线程的状态
和进程类似,线程拥有以下三种基本状态:
- 就绪(Ready)
- 阻塞(Block)
- 运行(Run)
一个线程可以创建和撤销另一个线程,同一个进程中的多个线程之间可以并发执行。