python中线程、进程和协程的区别

2023-05-16

 

  1. 进程是资源分配的单位
  2. 线程是操作系统调度的单位
  3. 协程,又称微线程,纤程,协程的切换只是单纯的操作CPU的上下文,资源很小,效率高
  4. 进程切换需要的资源很最大,效率很低
  5. 一个程序至少有一个进程,一个进程至少有一个线程
  6. 线程执行开销小,但不利于资源的管理和保护;而进程正相反

通俗描述

  • 有一个老板想要开个工厂进行生产某件商品(例如剪子)
  • 他需要花一些财力物力制作一条生产线,这个生产线上有很多的器件以及材料这些所有的 为了能够生产剪子而准备的资源称之为:进程
  • 只有生产线是不能够进行生产的,所以老板的找个工人来进行生产,这个工人能够利用这些材料最终一步步的将剪子做出来,这个来做事情的工人称之为:线程
  • 这个老板为了提高生产率,想到3种办法:
    1. 在这条生产线上多招些工人,一起来做剪子,这样效率是成倍増长,即单进程 多线程方式
    2. 老板发现这条生产线上的工人不是越多越好,因为一条生产线的资源以及材料毕竟有限,所以老板又花了些财力物力购置了另外一条生产线,然后再招些工人这样效率又再一步提高了,即多进程 多线程方式
    3. 老板发现,现在已经有了很多条生产线,并且每条生产线上已经有很多工人了(即程序是多进程的,每个进程中又有多个线程),为了再次提高效率,老板想了个损招,规定:如果某个员工在上班时临时没事或者再等待某些条件(比如等待另一个工人生产完谋道工序 之后他才能再次工作) ,那么这个员工就利用这个时间去做其它的事情,那么也就是说:如果一个线程等待某些条件,可以充分利用这个时间去做其它事情,其实这就是:协程方式

https://blog.csdn.net/weixin_42589922?t=1

转载于:https://www.cnblogs.com/applelife/p/10983551.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python中线程、进程和协程的区别 的相关文章

随机推荐

  • Python 工匠:使用装饰器的技巧。

    作者 xff1a piglei xff08 本文来自作者投稿 xff09 前言 装饰器 xff08 Decorator xff09 是 Python 里的一种特殊工具 xff0c 它为我们提供了一种在函数外部修改函数的灵活能力 它有点像一顶
  • AI听6秒语音就能知道你的长相

    声音可以暴露很多讯息 xff0c 麻省理工学院 xff08 MIT xff09 最近一项研究发现 xff0c 经过训练的 AI 不仅能从声音辨别出性别 年龄和种族 xff0c 甚至能猜出这人大概长什么样子 这些 秘密 都藏不住了 研究人员用
  • selenium编程01-简单163邮箱登陆登出_模块化

    from selenium import webdriver from time import sleep class Login def init self driver self driver 61 driver def login s
  • 163music 反爬分析

    网易163 音乐的 mp3下载 view source https music 163 com playlist id 61 924680166 这个是网页源代码 链接 中间的 拿不到具体的数据 所以获取页面的时候 要去除 http mus
  • 二层链路聚合实验

    交换机1 xff1a ystem view vlan 10 vlan 20 qu interface range g1 0 1 to g1 0 2 port link type access port access vlan 10 qu i
  • plsql

    1 添加快捷键设置 摘抄自https www cnblogs com guangxiang p 9487132 html 汉化版 xff1a 工具 首选项 用户界面 编辑器 自动替换 定义文件 英文版 xff1a Tools gt Perf
  • 如何利用python制作微信好友头像照片墙?

    这个不难 xff0c 主要用到itchat和pillow这2个库 xff0c 其中itchat用于获取微信好友头像照片 xff0c pillow用于拼接头像生成一个照片墙 xff0c 下面我简单介绍一下实现过程 xff0c 代码量不多 xf
  • 软件需求工程与UML建模第二周工作总结

    项目范围 xff1a 1 能够实现仅弹道技能的躲避训练和带有技能发射主体的技能躲避训练 2 要能够玩家自由选择角色进行训练 3 要能够实现包含技能躲避 1v1对线训练等多模式选择的训练方式 4 要能够快捷进行多次练习 xff0c 我们计划加
  • 阻塞和非阻塞~

    很清楚 先记下 https www zhihu com question 19732473 answer 14413599 转载于 https www cnblogs com Mickey697 p 10863679 html
  • vnc利用ps命令查看所有DISPLAY

    ps aux grep vnc 使用该命令可以看到详细的vnc进程和使用的DISPLAY和DISPLAY的分辨率
  • 基础数据类型的补充,编码的进阶,基础数据类型之间的转换

    1 内容总览 基础数据类型的补充数据类型之间的转换 其他数据类型转成bool值为False的情况编码的进阶 2 具体内容 数据类型的补充 str 6个 code str xff1a 补充的方法练习一遍就行 6个 s1 61 39 taiBA
  • Keepalived

    Keepalived双机热备 Keepalived简介 Keepalived是使用C语言编写的路由热备软件 xff0c 该项目软件的主要目标是为Linux系统提供简单高效的负载均衡及高可用解决方案 负载均衡架构依赖于知名的IPVS xff0
  • Scyther 形式化分析工具资料整理(三)

    1 作者Cas Cremers在做TLS1 3的时候我么发现并没有使用Scyther 形式化丰分析工具对其进行分析 xff0c 而是使用了 The Tamarin 作者建立了TLS 13的模型 那么我的目标是 使用Scyther工具对TLS
  • java产生随机数的三种方式

    public class Test public static void main String args Random类 创建随机数对象有2种 一种是添加参数 也叫种子 这种方式创建出来的数 刷新后不会改变 相当于常量了 主要方法 nex
  • gcc 编译两个so其中soA依赖soB

    有两个so xff0c 其中soB中调用soA xff1b 那么我们打包soB的时候连接soA xff1b 在打包test程序的时候连接soB 此时soB会自动查找依赖的soA xff1b 如下测试 在编译之前指定环境变量 xff1a ex
  • Vue 循环 [Vue warn]: Avoid using non-primitive value as key

    页面中不添加 xff1a key 索引的时候 xff0c 会不停的提示虚线 xff0c 但不影响使用 后来加了一个索引 xff0c 加成了 key 61 34 content 34 从后台取出来的contents是一个list xff0c
  • 博客系统 01 登录退出

    一 工程搭建 使用的是IDEA xff08 1 xff09 新建个动态web工程 xff08 Blog xff09 xff08 2 xff09 导入jar包 xff08 SSH jar包 xff09 xff08 3 xff09 导入配置文件
  • 蓝桥杯2017国赛JAVAB组 树形显示 题解

    标题 xff1a 树形显示 对于分类结构可以用树形来形象地表示 比如 xff1a 文件系统就是典型的例子 树中的结点具有父子关系 我们在显示的时候 xff0c 把子项向右缩进 xff08 用空格 xff0c 不是tab xff09 xff0
  • 读《【解密】京东B2B业务架构演变》有感

    京东的B2B业务目前来说发展比较好 xff0c 它的定位是让各类型的企业都可以在京东的 B 平台上进行采购 建立采购关系 京东 B2B 的用户群体主要分为 2 类 xff0c 一类是大 B 用户 另一类是小 B 用户 比如联通 移动公司跟京
  • python中线程、进程和协程的区别

    进程是资源分配的单位线程是操作系统调度的单位协程 xff0c 又称微线程 xff0c 纤程 xff0c 协程的切换只是单纯的操作CPU的上下文 xff0c 资源很小 xff0c 效率高进程切换需要的资源很最大 xff0c 效率很低一个程序至