跟涛哥一起学嵌入式 27:一个小故事,让你明白进程、线程和协程的区别

本文通过西凉女儿国唐僧带领的团队租房故事,生动解析了进程、线程和协程的区别与联系,以及它们在多任务编程中的角色。从独门独户的进程,到共居一室的线程,再到和谐共处的协程,形象地展现了多任务处理的演进。

进程、线程和协程,是多任务编程中的常用术语。很多初学者分不清它们之间的区别,今天就以一个小故事为引子,让大家搞清楚他们之间的本质区别。

话说在西凉女儿国,大唐文化传播有限公司CEO唐僧招聘了三个员工做游戏直播,他们分别是:孙悟空、猪八戒和沙僧。唐僧分别给他们租了三套一室一厅的房子,独门独户,他们三个每人各住一套,独享各自的卫生间和厨房,互不干扰。这有点类似于进程,在Linux环境下,每个进程有自己各自独立的 4G 地址空间,大家互不干扰对方,如果两个进程之间通信的话,还需要借助第三方进程间通信工具 IPC 才能完成。

 

v2-067f3139f27b2a2226fd1c4d33ccac5f_b.jpg

如上所示,进程A和进程B,各自有4G地址空间,除了1G的内核空间是共享的,用户空间则是相互独立的。不同的进程通过页表映射,映射到物理内存上各自独立的存储空间,在操作系统的调度下,分别轮流占用CPU去运行,互不干扰、互不影响,甚至相互都不知道对方。在每个进程的眼里,CPU就是他的整个世界,虽然不停地被睡眠,但是一旦恢复运行,一觉醒来,仿佛什么都没发生过一样,认为自己拥有整个CPU,一直在占有它。这就像悟空、八戒和沙僧一样,各自在自己的房间里,互相不知道对方。

 

v2-c8b9c6dffd5909817ed18581166b6fd9_b.jpg

 

后来公司不景气,为了节省开支,原来的三套房子都退了,唐僧给他们三个租了一套三室一厅的房子,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宅学部落-王利涛

just for test

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值