并发编程(1)----初识概念

1.进程、线程和协程

进程:是计算机中程序的一次运行活动,是计算机进行资源分配和调度的基本单位
线程:是计算机进行运算调度的基本单位,线程构成进程
**协程:微线程,协程是由用户自己控制和调度的
画个图来解释下:
在这里插入图片描述
CPU相当于皇上,每个进程相当于一个宫殿,每个相当于一个妃子,
皇上给每个宫殿拨款,每个宫殿内部再自己分配,所以宫殿是资源分配和调度的基本单位
皇上宠幸妃子,而不是宠幸宫殿,所以妃子是基本的运算单位
线程和进程的作用:皇上建造一个宫殿,每个宫殿中养有妃子,妃子再去服侍皇上,所以宫殿是提供空间的,妃子们才是工作单位
线程之间的关系:一个宫里面有多个妃子,但是只有一个老大,其他妃子都听这个老大的,这个老大就是主线程,在同一个宫里,奴才和宫女这些妃子都是共享的,所以他们之间是协作关系,且资源共享;类推,因为每个宫是竞争关系,那不同宫中的妃子也是竞争关系,都想被皇上宠幸
进程之间的关系:皇上有很多后宫,每个后宫都想得到皇上的青睐,所以他们之间是竞争关系,每个宫的奴才和宫女不通用,所以进程之间的数据是隔离的

2.并发、并行、串行

话不多说,直接上图
原图连接:https://www.cnblogs.com/linhaifeng/articles/7430066.html
在这里插入图片描述

假设线程A:听歌 线程B:写代码 线程C:吃东西
串行:听完歌,再写代码,写完代码再吃东西,不同时进行
并行:听这歌,吃着东西,写着代码,同时进行
并发:听一下歌,敲一个代码,吃一口东西,每个时刻只做一个动作(保存状态,切换)

发布了62 篇原创文章 · 获赞 13 · 访问量 2965

猜你喜欢

转载自blog.csdn.net/Yanghongru/article/details/105164794
今日推荐