首先要区分,什么是进程,什么是线程
官方定义:
- 进程:CPU 资源分配的最小单位
- 线程:CPU 调度的最小单位
简单理解:
- 进程: 就是我们平常使用的程序,如浏览器,微信等。进程拥有自己独立的内存空间地址
- 线程:是建立在进程的基础上的一次程序运行单位,一个进程可以有多个线程
打开任务管理器,我们可以看到后台的进程列表
举个例子
- 进程是一个工厂,工厂有它独立的资源
- 工厂之间相互独立
- 线程是工厂中的工人,多个工人协作完成任务
- 工厂内有一个或者多个工人
- 工人之间共享空间
对应到我们的程序中
- 工厂资源 --> 系统分配内存(独立的一块内存)
- 工厂之间相互独立 --> 进程之间相互独立
- 多个工人协作完成任务 --> 多个线程在进程中协作完成任务
- 工厂内有一个或者多个工人 --> 一个进程由一个或者多个线程组成
- 工人之间共享空间 --> 同一个进程下的各个线程之间共享程序的内存空间(包含代码段,数据机,堆等)
网友评论