一、进程和线程
什么是进程
- 进程是计算机内执行的最小单位
- 一个进程可以抽象理解为一个exe文件
什么是线程
- 线程是进程内进行具体工作的工作流
二者对比
- 一个进程内可以有一个或多个线程
- 进程是计算机执行的最小单位,线程是进程内具体完成任务的工作流
- 某种意义上来说,线程是特殊的进程(如某个进程只有一个线程,那么此时该线程可以看做是一个特殊的进程)
二、并行和并发
什么是并行
- 在同一时间段内,有多个事件被同时执行(每个事件均在工作中)
什么是并发
- 在同一时间段内,有多个事件被执行(不会同时执行事件,会采取分片的方式轮流处理每个事件)
二者对比
- 家庭主妇需要照顾小孩,打扫卫生,做饭,她一个人轮流交替的做这些事情,这就是并发
- 家庭主妇雇用了一个保姆,他们一起做这些事情,那么这时既有并发(假如做饭时只有一口锅,一个人用锅时另一个人就需要等待)也有并行(保姆负责做饭,主妇负责照顾孩子,同时进行这两件事) Q:一个线程被一个cpu执行一半后,还会被其他cpu接管继续执行吗?
A:会,线程执行到哪里会被保存,等到被其他任意cpu执行时,会被该cpu接管,继续向下执行
三、应用
案例1 异步调用
同步与异步
- 同步:
- 异步: