多线程概念理解-面试篇:什么是进程、线程、并发、并行?多线程到底是怎么执行的?

 

目录

1、什么是进程?

2、什么是线程?

3、什么是并发?

4、什么是并行?

5、线程到底是怎么执行的?


1、什么是进程?

举个例子:一个软件就是一个进程,我们现在开着一个微信软件,那么这个微信程序就是一个独立的进程。

2、什么是线程?

线程是属于进程的,一个进程可以同时运行很多个线程。

例如微信这个进程,里面有很多线程帮我们处理任务,一个线程帮我们接收男朋友的消息,一个线程帮我们打开小程序。

3、什么是并发?

进程中的线程是由CPU负责调度执行的,但CPU能同时处理的线程数量有限,为了能保证所有线程都能进行,CPU就会轮询为每个线程服务,由于CPU切换速度很快,给我们感觉在同时进行,这就是并发。

举例子:你是一个服务员(CPU),你有10个顾客都要你上10个菜(线程),为了能保证每个顾客不受冷落,你需要对每个顾客都轮询服务,即这个顾客上一个菜,然后跑去那个顾客上一个菜。由于你上菜的速度超级快,所以每个顾客都觉得好像是同一时间上菜的一样(即同时进行),这就是并发。

4、什么是并行?

在同一时刻上,同时有多个线程在被CPU调度执行(依赖你的CPU处理器)

举例子:餐厅有10个客人(线程),有2个服务员(CPU),同一时刻只能有2个客人在被服务,这就是并行。

5、面试题:线程到底是怎么执行的?

答:进程中的多个线程其实是并发和并行执行的

举例子一:餐厅有10个客人(线程),有2个服务员(CPU),同一时刻只能有2个客人在被服务,这就是并行。这两个服务员同一时刻同时服务2个客人,几秒后马上又跑去服务下两个客人,轮询调度,由于这两个服务员跑得飞快,趁客人还没反应过来就又跑回来继续服务了,所以客人们以为服务员没离开过一直为他们服务呢,其实是时间管理大师,这就是并发。

举例子:我的电脑是8核的,所以同一时间(这一刻)只能有8个线程在执行(这就是并行),但是我有三千多个进程怎么办呢?所以我这一刻执行8个线程,下一刻又去执行另外8个线程,轮询调度(这就是并发),所以进程中的多个线程是并发和并行执行的。

这就是我对进程、线程、并发、并行的理解,希望能帮到大家,有问题的地方欢迎大家一起讨论!

后续会持续更新,欢迎大家一起讨论学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值