美文网首页
原创|Python|说人话|进程、线程、协程|同步、异步、阻塞、

原创|Python|说人话|进程、线程、协程|同步、异步、阻塞、

作者: Hill_GM | 来源:发表于2020-04-17 09:13 被阅读0次

什么是进程?什么是线程?什么是协程?

只说人话,只举例子

关系类比:

进程:多条生产线

线程:单条生产线上的多位工人

协程:单条生产线上的单个工人

特点类比:

进程:建设多条生产线,需要消耗资源最高,每条线存在1位线长,因跨生产线,许多信息不通,故彼此通信繁琐

线程:单条生产线上的多位工人,每个工人可以独立工作,但没有思考能力,所以每条生产线配置1名线长,线长同时间只能思考或者处理工人提出的1件事(CPU),故线程存在GIL锁。

协程:单条生产线上的单个工人,怎么提高工人的生产效率?当工人在等待(例如IO等待、sleep等待、完成任务)就切换处理其他事情。当其他事情遇到同类(IO等待、sleep等待、完成任务)就切换回原工作。

特例:多线程只开1条线程,那么就是协程,协程是多线程的特例
例如:单条生产线只有1名工人,这是特例

由于是单人工作,充分利用了等待时间,所以资源消耗最低

资源消耗:进程>线程>协程
通信便利:协程>线程>进程

同步、异步、阻塞、非阻塞、并发、并行关系和区别

同步与异步

功能:
小明去快递店取快递,快递员在寻找快递,小明傻傻一直在等待,什么也不做,就是同步。若小明在等待的时间去看手机,那么就是异步。
从小明的角度:等待时间去处理其他事情,就是异步。一直等待什么也不处理,就是同步。

阻塞与非阻塞

功能:
和同步与异步的功能一致,只是”同步与异步“是从顾客角度说,”阻塞与非阻塞“是从服务者角度说相同功能。

并发与并行

功能:
并发
并发是以顾客角度说明,可以接受多次请求。
同样以取快递为例,快递店门口有5个顾客,可以同时扫二维码取快递,这就是并发,就是可以同时接受多个请求,然后异步处理。

并行
就是物理学的并联,类似多进程,资源都是独立,互不干涉。

并行.png

相关文章

  • 进程 线程 协程 同步 异步 阻塞 非阻塞

    参考文章: Python 中的进程、线程、协程、同步、异步、回调 简明网络I/O模型---同步异步阻塞非阻塞之惑...

  • 原创|Python|说人话|进程、线程、协程|同步、异步、阻塞、

    什么是进程?什么是线程?什么是协程? 只说人话,只举例子 关系类比: 进程:多条生产线 线程:单条生产线上的多位工...

  • 9.8动态语言层并发处理视频

    相关概念什么是进程、线程、协程什么是多进程、多线程同步阻塞模型异步非阻塞模型PHP并发编程实践 进程是一个“执行中...

  • Gevent高并发网络库精解

    进程 线程 协程 异步 并发编程(不是并行)目前有四种方式:多进程、多线程、协程和异步。 多进程编程在python...

  • python笔记3

    python 无线程池 ,有进程池 阻塞 意外着等待子进程结束 字典的无序性 : 进程,线程,协程 协程,又称微...

  • 线程进程

    多线程 多进程 协程的异同点 同步异步阻塞和非阻塞的概念 计算密集型任务和IO密集型任务 分布式编程: 同步原语 ...

  • kotlin协程

    协程基础 轻量级线程。在一个线程中可以启动多个协程。 在协程中使用同步方式写出异步代码(协程挂起时不会阻塞线程),...

  • Kotlin协程实现原理

    CSDN同步发布 为什么需要协程? 协程可以简化异步编程,可以顺序地表达程序,协程也提供了一种避免阻塞线程并用更廉...

  • python异步协程(aiohttp,asyncio)

    python异步协程 环境:python3.7.0 协程 协程,英文叫做 Coroutine,又称微线程,纤程,协...

  • Python协程还不理解?请收下这份超详细的异步编程教程!

    ​1. 初探 在了解异步协程之前,我们首先得了解一些基础概念,如阻塞和非阻塞、同步和异步、多进程和协程。 1.1 ...

网友评论

      本文标题:原创|Python|说人话|进程、线程、协程|同步、异步、阻塞、

      本文链接:https://www.haomeiwen.com/subject/smbsvhtx.html