并发与并行,进程、线程和协程之间的异同小节

并行:依赖硬件完成同一时刻,同时运行多个程序。真正的多任务。
并发:依赖CPU高速运算的特性,出现像是同时运行多个程序的现象,伪的多任务,本质是同一刻只能执行一个任务,但是极短时间内轮番执行多个。

==================================================================================
进程:
运行起来的程序。占用系统资源的(主要为占用内存)
一个程序要想运行,必须要有“进行地址空间”(虚拟地址空间),所有系统都是如此。
对应关系:
1对1
1对N 均可
进程并发:
提高单位时间内,获得cpu的概率。
进程的状态:
初始态、就绪态、运行态、挂起态,终止态
==========================================================================

线程
进程:最小资源分配单位(虚拟地址空间)
线程:最小执行单位(cpu时间片按线程来划分)
线程同步:多个线程同时访问同一个共享资源 有可能对该资源造成修改时,所采用的一种协调保护机制。
指定访问共享资源的先后顺序。 ——–避免数据混乱。
==========================================================================================
协程:
协程优点:
1.不需要提供栈帧。没有调用、释放一说。——————亦称微线程
2.不需要提供新的内存资源。
缺点:依赖线程,进程。
线程————独立的控制流
线程并发————多个独立控制流访问cpu
协程充分利用 线程、进程 等待的时间,去完成其他操作。最大化的提高CPU使用率。
========================================================================
总结:进程、线程、协程:
都可以实现并发。进程消耗资源最大,线程次之,协程最小。
进程:稳定性最高。
线程:开销小,切换方便。
协程:充分利用线程、协程等待时间。程序中有更多IO操作。

最后再看一个形象的例子加深理解

    例子:假如你是手机厂老板
               购置一个生产线。——进程。
               招一个工人。    ——线程。
               招十个工人。    ——单进程、多线程。
               购置五条生产线、500个工人。——多进程、多线程
               所有的生产线工人,闲暇时间。去老板家搬砖盖楼。——协程。

猜你喜欢

转载自blog.csdn.net/weixin_42940826/article/details/82025413