详解Python的多任务进程

作者:小Pawn爷 时间:2021-08-20 19:12:48 

1.基本概念

定义含义
并发:concurrency,同一时刻只能有一条指令执行,但是多个线程的对应的指令被快速轮换地执行
并行parallel,同一时刻,有多条指令在多个处理器上同时执行,并行必须要依赖于多个处理器
阻塞程序未得到所需计算资源时被挂起的状态
非阻塞程序在等待某操作过程中,自身不被阻塞,可以继续处理其他的事情
同步不同程序单元为了完成某个任务,在执行过程中需靠某种通信方式以协调一致,我们称这些程序单元是同步执行的
异步为完成某个任务,不同程序单元之间过程中无需通信协调,也能完成任务的方式,不相关的程序单元之间可以是异步的

2.线程和进程比较

名称含义应用场景
多线程系统进行运算调度的最小单位IO密集型(磁盘IO网络IO数据库IO等,譬如爬虫,网站开发等)
多进程系统进行资源分配的最小单位CPU密集型(大数据分析,机器学习等)
多协程程序员级别的调度高并发的场景

3.协程和线程的比较

多线程:

  • 多个线程切换需要频繁的加锁解锁,

  • 需要保存或者恢复cpu上下文,

  • 每个线程还需要有缓存cache等数据

多协程:

  • 协程的切换是在单线程里实现任务的切换

  • 且协程拥有自己的寄存器上下文和栈,无需线程上下文切换的开销

  • 无需原子操作锁定及同步的开销

来源:https://blog.csdn.net/weixin_44689630/article/details/122530757

标签:Python,多任务,进程
0
投稿

猜你喜欢

  • Python面向对象程序设计之类的定义与继承简单示例

    2022-03-24 03:00:16
  • 浅谈Python实现opencv之图片色素的数值运算和逻辑运算

    2022-06-11 15:58:50
  • python实现excel和csv中的vlookup函数示例代码

    2021-05-06 07:22:48
  • 如何Restore数据库备份文件?

    2009-11-02 20:20:00
  • 小议sqlserver数据库主键选取策略

    2011-10-24 19:51:30
  • python 中文编码乱码问题的解决

    2021-03-06 16:43:58
  • asp如何远程注册DLL

    2010-06-16 09:58:00
  • Oracle数据库的十种重新启动步骤

    2012-07-21 14:58:25
  • Python3接口性能测试实例代码

    2021-02-16 14:24:18
  • 关于Javascript闭包与应用的详解

    2024-04-23 09:09:28
  • Python利用numpy实现三层神经网络的示例代码

    2021-07-29 22:04:46
  • pandas修改DataFrame列名的方法

    2021-07-18 16:41:24
  • 教你用Python创建微信聊天机器人

    2021-10-06 21:50:14
  • Python日期时间对象转换为字符串的实例

    2022-05-24 14:51:29
  • 跟老齐学Python之变量和参数

    2023-01-12 22:23:31
  • openCV中值滤波和均值滤波的代码实现

    2023-07-22 06:08:28
  • Python机器学习之基础概述

    2021-07-18 19:07:59
  • 将各种类型或对象都转变为数组

    2009-12-28 13:19:00
  • CSS设计之如何让数字字母自动换行

    2007-10-19 15:12:00
  • JavaScript中两个字符串的匹配

    2023-08-08 00:46:01
  • asp之家 网络编程 m.aspxhome.com