python gevent模块 下载_Python中的多任务,并行,并发,多线程,多进程,协程区别...

0bae5ee57d66f6856bcf5a60f1f0efb8.png

多任务

CPU承担了所有的计算任务。一个CPU在一个时间切片里只能运行一个程序。当我们想同时运行多于一个程序的时候,就是多任务,例如同时运行微信,QQ,浏览器等等。多任务的目的是提升程序的执行效率,更充分利用CPU的资源。

  • 并行

当任务数≤ CPU核数时,每一个任务都有对应的CPU来处理执行,多个务同时执行,互不抢占CPU资源,可以同时进行,这种方式我们称之为并行(Parallel)。

  • 并发

当任务数≥ CPU时,多个任务在执行,则每个CPU不可能真正同时进行一个以上的任务,多个任务只能把CPU运行时间划分成若干个时间段,在一个时间段的任务代码运行时,其它任务处于挂起状态。.这种方式我们称之为并发(Concurrent)。实际上总有一些任务不在执行,因为切换任务的速度相当快,看上去像一起执行而已。

Python中的进程、线程、协程

  • 进程(multiprocessing模块)
Python_多进程详解_Baymax_Bai的博客-CSDN博客​blog.csdn.net
a1af5c729a5ffb56dde826ce10ffb6b6.png

进程是系统进行资源分配和调度的独立单位。我们用流水线来进行解释进程:假如有9000个零件需要加工,这9000个零件加工就代表9000个任务,即多任务。我们现在有3条流水线,这3条流水线就代表3个进程,每个进程中有1个员工在加工零件。3个进程之间互不影响,可以同时工作。

f4b08113e82bb333b8e058c1373ab15a.png
  • 线程(threading模块)
Python_多线程详解_Baymax_Bai的博客-CSDN博客​blog.csdn.net
a1af5c729a5ffb56dde826ce10ffb6b6.png

线程是进程的实体,是CPU调度和分派的基本单位。线程是属于进程的,线程运行在进程空间内。我们用流水线来进行解释线程:假如有9000个零件需要加工,这9000个零件加工就代表9000个任务,即多任务。我们现在有1条流水线,这1条流水线就代表1个进程,这1个进程中有3个员工在加工零件。那么3个员工就代表3个线程,线程之间互不影响,可以同时工作。

ab21fb577933bb79cfc21adba14ba7f9.png
  • 协程(gevent,属于第三方模块,需要下载安装)
pip install gevent
Python_协程详解_Baymax_Bai的博客-CSDN博客​blog.csdn.net
a1af5c729a5ffb56dde826ce10ffb6b6.png

协程也是线程,称微线程,是比线程更小的执行单元,解决的是IO的操作。协程最大的优势就是协程极高的执行效率。因为子程序切换不是线程切换,而是由程序自身控制,因此,没有线程切换的开销,和多线程比,线程数量越多,协程的性能优势就越明显。协程也存在着切换,这种切换是由我们用户来控制的。我们用流水线来进行解释线程:假如有9000个零件需要加工,这9000个零件加工就代表9000个任务,即多任务。我们现在有1条流水线,这1条流水线就代表1个进程,这1个进程中有1个员工在加工零件。当第1个零件加工的时候,在第1个零件加工等待期间(程序挂起,等待),飞速切换到第2个零件处加工,在第2个零件加工等待期间,飞速切换到第3个零件处加工,待第1个零件加工等待结束前切回第1个零件处,如此往复。协程之间不同时工作。

e6ded8db4f5f31db9c70992474e2a0fe.png
  • 区别
  1. 一个程序至少有一个进程,一个进程至少有一个线程;
  2. 线程的划分尺度小于进程(资源比进程少),使得多线程程序的并发性高;
  3. 进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率;
  4. 线程不能够独立执行,必须依存在进程中;
  • 优缺点:

线程执行开销小,但不利于资源的管理和保护;而进程正相反;当我们要完成的任务有耗时任务,属于IO密集型任务时,我们使用协程来执行任务会节省很多的资源,并且可以极大的利用到系统的资源。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/573932.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue-router 路由嵌套显示不出来_网络协议|OSI模型第三层网络层中的路由

的IP协议OSI第二层中用以太网协议定义了信息传输单元,简称为帧,它长这个样子。同样的在OSI第三层中,会用 IP 协议去定义信息传输单元,简称为数据包,它长这个样子。实际上,最终在网络上传输的是第二层的帧&a…

asp.net怎么实现按条件查询_【33期】分别谈谈联合索引生效和失效的条件

点击上方“Java面试题精选”,关注公众号面试刷图,查缺补漏>>号外:往期面试题,10篇为一个单位归置到本公众号菜单栏->面试题,有需要的欢迎翻阅。这道题考查索引生效条件、失效条件。像这类问题才其实很有意义&…

java 二分搜索获得大于目标数的第一位_程序员数据结构算法编程,二分查找搜索算法的原理与应用介绍!...

本文来讲一种搜索算法,即二分搜索算法,通常在面试时也会被问到。我们先来看一个例子,在图书馆通常是根据查到的编号去找书,可以在书架上按顺序一本本地查找,也可以找到一本书不符合预期时,再跳过一大部分书…

2020idea插件怎么同步_VScode 插件整理

1、auto rename tag :HTML 标签自动闭合;避免了在整个页面中费劲查找。你想将一个H2标签更改为H3标签,或者你想将一个div标签更改为span标签,不管要做什么,你都要浪费时间来查找结束标签,这时候就该用这个插…

python 将两幅图拼接_清华王教授典藏的python电子书,整整10个G拿去不谢

终于拿到!清华王教授典藏的电子书,整整10个G!兄弟,毫无套路!无偿获取方式:1.点赞评论2.关注小编,私信“Python”(点开头像就能看到私信按钮啦).Python指南——五行代码实现批量抠图你是否曾经想将某张照片中…

地磅称重软件源码_【漯河衡器】导致地磅称重不准原因及处理措施

地磅是一种新型的大型电子衡器,能够迅速、直观、高准确度地展现工商业、仓储、货站贸易计量的重要工具。做为贸易结算的工具,地磅的可靠性、准确性、科学性有着极为重要的影响。而在货物来往中,地磅是等价交换的桥梁,一旦地磅显现…

寻宝机器人电路板焊接_专业维修淮安市KUKA库卡KRC2机器人回收{机器人调试}

FANUC机器人伺服-023故障排除:FANUCR-2000六轴焊接机器人点焊进程中,J4机械臂显现自动滑动故障,机器人发出伺服故障报警,报警故障码为伺服-023,依据FANUC机器人维修手册,故障代码解释以下:伺服误…

android uber启动动画,仿 Uber 视频背景登录界面以及登录动画

现在有越来越多的 app 的登录/注册界面的背景是播放视频或者 gif,我主要看了 Uber 和 keep 的登录界面再配合拉勾的登录界面仿作了一个登录界面。1.首先,查资料我在 github 上找到了这两个库:-STLBGVideo 这个库是 oc 写的,但你的…

遍历列表python_Python 遍历List的三种方法

转载至https://www.cnblogs.com/pizitai/p/6398276.html #!/usr/bin/env python # -*- coding: utf-8 -*- if __name__ __main__: list [html, js, css, python] # 方法1 print 遍历列表方法1: for i in list: print ("序号:%s 值:%s&…

名图1.8智能隐藏功能_自动打包不脏手才是真智能,双11销冠,拓牛自动打包垃圾桶体验...

不是吧!不是吧!都是2020年了,不会还有人不知道电动垃圾桶的存在吧?如果你还不知道,那就跟5G智玩好物一起来看看最新上线的拓牛T Air Lite吧。首先,让我们看一下拓牛T Air Lite的外观。在大众的印象里&#…

android struts2 图片上传,xhEditor struts2实现图片上传

如果想要出现上传按钮,在xhEditor设置以下参数:html5Upload : false //此属性必须为falseupImgUrl : "ImgUpload.action" //上传服务器接口onUpload : insertUpload //服务器返回信息,JSON格式一、前台代码$(function() {…

python如何画出多个独立的图片_python实现在一个画布上画多个子图

matplotlib 是可以组合许多的小图, 放在一张大图里面显示的. 使用到的方法叫作 subplot. 均匀画图 使用import导入matplotlib.pyplot模块, 并简写成plt. 使用plt.figure创建一个图像窗口. 1 2 3 import matplotlib.pyplot as plt plt.figure() 使用plt.subplot来创建小图. plt.…

e5cc温控仪通讯参数设定_产品介绍||DeltaWiFi通讯型多功能电表DPMC520W

Delta-WiFi通讯型多功能电表DPM-C520W台达WiFi通讯型多功能电表DPM-C520W ,使用无线通信技术,非常适合于挑高空间和不易配线的盘体使用。可支持各种电力参数量测及谐波量测,支持报警设定、参数群组化设定,采用MODBUS-TCP协议&…

文件设置索引_什么样的网站结构备受搜索引擎喜爱?

网站在优化中,对于收录问题也非常重视,但很多时候,网站各方面都做的很好但就是蜘蛛不抓取,这个时候就要考虑是网站结构问题了,导致网站页面无法被正常抓取。那么怎样才能提升搜索引擎的抓取呢?什么样的结构…

函数运行 形参实参变化 内存空间_可能python创始人都不知道的,python函数实参形参讲解...

今天我们来学习一下python函数的用法函数是带名字的代码块,我们可以直接调用函数,无需反复板鞋完成该函数的代码1.下面我们来看一个简单的函数首先定义一个函数,def是定义的意思,后面是函数名在函数中同样使用缩进来区分语句是否在…

小说阅读网站设计HTML,40多个漂亮的网页表单设计实例

网页表单是访问者与网站拥有者主要的沟通途径。返馈总是重要的,这就是我们为什么确保网页表单容易理解和使用起来比较直观的原因,尽管如此,甚至在形式设计中它也担当创意中的有效部分。网页表单并非都是乏味的,使用css或flash,你能…

abap 添加alv上的工具栏的按钮_你需要属于自己的PPT工具栏!

人类使用工具的历史,是我们成为人类 ,并且不断进步的历史。对于我们设计师而言,认识并掌握设计工具,是我们成为设计师的开始。而根据自己的需要,升级、改造设计工具,则是我们向更深层水平的进阶过程。Power…

java根据pdf模板生成pdf_PDF文件如何生成链接

本文介绍如何将PDF文件在线分享。首先我们打开maipdf的网站,因为市场上做pdf安全分享的网站非常少,所以建议使用maipdf打开网站之后,选择您需要分享的pdf文件进行上传生成后的链接您可以打开看到您的pdf文件,并且在改页面下&#…

在Linux服务器上配置phpMyAdmin

使用php和mysql开发网站的话,phpmyadmin是一个非常友好的mysql管理工具,并且免费开源,国内很多虚拟主机都自带这样的管理工具,配置很简单,接下来在linux服务器上配置phpmyadmin来管理MySQL数据库 首先访问phpmyadmin官…

java 换行分割_用Java开发自己的Kubernetes控制器,想试试吗?

简洁清爽的代码风格应该是大多数工程师所期待的。在工作中笔者常常因为起名字而纠结,夸张点可以说是编程 5 分钟,命名两小时!究竟为什么命名成为了工作中的拦路虎。每个公司都有不同的标准,目的是为了保持统一,减少沟通…