进程和线程
01.进程(process)是计算机中的程序关于某数据集合上的一次运行活动。
- 进程是系统进行资源调度和分配的基本单位,是操作系统结构的基础。
- linux中的进程有父进程,子进程之分,windows中的进程是平等关系。
- 进程是一个程序执行的实例。
- 程序是源代码编译后的文件,当程序被操作系统加载到内存中,就称为进程。
- 进程中存放着指令和数据(资源),它是线程的容器。
02.线程(thread),也称为轻量级进程(lwp),是操作系统能够进行运算调度的最小单位。
- 线程被包含在进程之中,是进程的实际运作单位。
- 线程只能在实现了线程的操作系统中产生。
- 线程由线程id,当前指令指针(pc),寄存器集合和堆栈组成;线程的创建比进程快1-2个数量级。
- 线程的状态包括:
- 就绪(ready),线程能够运行,但在等待被调度;可能线程刚刚创建启动,或者刚从阻塞中恢复,被其他线程抢占。
- 运行(running),线程正在运行。
- 阻塞(blocked),线程等待外部事件发生而无法运行,如I/O操作。
- 终止(terminated),线程完成或退出,或被取消。
- 线程的状态转换如下图:
03.进程和线程的理解:
- 现代操作系统提出进程的概念,每一个进程都认为自己独占所有的计算机硬件资源。
- 进程之间不共享数据。
- 线程之间可以共享进程的资源,每一个线程拥有自己独立的堆栈。
文档更新时间: 2021-10-04 00:19 作者:闻骏