python-进程,线程,协程

python 进程 线程 协程 1.进程 线程 协程 概念 a.进程 我们电脑的应用程序,都是进程,假设我们用的电脑是单核的,cpu同时只能执行一个进程。当程序处于I/O阻塞的时候,CPU如果和程序一起等待,那就太浪费了,cpu会去执行其他的程序,此时就涉及到切换,切换前要保存上一个程序运行的状态,才能恢复,所以就需要有个东西来记录这个东西,就可以引出进程的概念了。 ​ 进程就是一个程序在一个数据集上的一次动态执行过程。进程由程序,数据集,进程控制块三部分组成。程序用来描述进程哪些功能以及如何完成;数据集是程序执行过程中所使用的资源 阅读详情

进程是cpu分配资源的最小单位:

  • 进程的创建、撤销和切换的开销比较大。

线程也叫轻量级进程,它是一个基本的CPU执行单元:

  • 线程的引入减小了程序并发执行时的开销,提高了操作系统的并发性能。线程没有自己的系统资源

关系:

  • 线程是属于进程的,线程运行在进程空间内,同一进程所产生的线程共享同一内存空间。当进程退出时该进程所产生的线程都会被强制退出并清除。

协程:

  • 对于多线程应用,CPU通过切片的方式来切换线程间的执行,线程切换时需要耗时。协程,则只使用一个线程,在一个线程中规定某个代码块执行顺序,由程序自身控制执行顺序

GIL:全局解释器锁

  • 保证同一时刻只有一个线程对共享资源进行存取
  • GIL的存在导致多线程无法有很好的多核CPU的并发处理能力
  • 只有IO Bound场景下得多线程会得到较好的性能
Python进程、线程、协程 每个进程都有各自的一块独立的内存,保证进程彼此间的内存地址空间的隔离。这种任务虽然也可以用多任务完成,但是当任务过多时(超过cpu的核数),花在任务切换的时间就越多,CPU执行任务的效率就越低,所以,要最高效地利用CPU,计算密集型任务同时进行的数量应当等于CPU的核心数。:涉及到网络、磁盘IO的任务都是IO密集型任务,比如网络传输、数据库等调用、爬虫等,这类任务的特点是CPU消耗很少,任务的大部分时间都在等待IO操作完成(存在阻塞),99%的时间花费在IO上(因为IO的速度远远低于CPU和内存的速度)。 阅读详情

相关推荐

Python 基础 之 python 中 进程、线程、协程对比 区别和联系

Python 基础 之 python 中 进程、线程、协程对比 区别和联系 目录 Python 基础 之 python 中 进程、线程、协程对比 区别和联系 一、简单介绍 二、进程、线程、协程 的定义 1. 进程 2、线程 3、协程 二、进程、线程对比 1、功能 2、定义的不同 3、区别 4、优缺点 三、协程和线程差异 四、进程、线程、协程对比 1、通俗描述阐述...

仙魁XAN 5070

Python的协程,线程,进程的理解及实现

1,进程解释略常用库-mutiprocessing2,线程解释略常用库-threading,threadpoolthread库因为存在主线程会优先于子线程结束的问题,产品开发时不建议使用另,因为Cpython全局解释锁(GIL)的原因,多个线程之间不是并行处理的,所以不算是纯意义上的多线程,但是也不失为一种提高效率的解决方式,所以Cpython环境中是不存在严格的并行计算的,无法利用多核,但是Jp...

踏雪追风 的专栏 498

matebookego win11 arm 系统安装安卓子系统

一般的x86电脑如果安装android子系统,运行安卓子系统,由于要将android arm代码转译为x86代码,所以效率不一定高,但是如果电脑是arm架构的,通过安卓子系统运行android的程序执行效率就会 高不少,本文参考,都是在win11 home版本下的。两者跑分在cpu上差不太多了,大约是枭龙855的水平了,这个水平的子系统就有一定的实用性了,玩个一般游戏,刷个抖音都很流畅的。启动子系统后,点击左上角的设置,启用 “开发人员模式”。然后就可以再通运运行华为应用商店来进行安装其它应用了。

babytiger的专栏 1万+

【python】python进程、线程、协程和什么时候使用

说明 进程:是操作系统进行资源分配的最小单元,资源包括CPU、内存、磁盘等IO设备等等 线程:是CPU调度的基本单位。 进程:系统分配资源的载体,是程序运行的实例; 线程:程序执行的最小单元,是进程中的一个实体用来执行程序,一个进程中有多个线程。 为什么有人说 Python 多线程是鸡肋? 在我们常识中,多进程、多线程都是通过并发的方式充分利用硬件资源提高程序的运行效率,怎...

我的笔记本 9001

【重启后nvidia-smi 命令出现错误】

NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.

qq_44769377的博客 5211

Sourcetree与Gitee的搭配使用

初次将gitee与sourcetree联合起来使用,还是遇到了不少问题,其中最让人烦恼的就是在我修改了一下用户名之后,便无法在Sourcetree直接推送到gitee,很是让人郁闷。本文处理Sourcetree与gitee搭配使用过程中的问题:Sourcetree身份验证失败,无法推送;Sourcetree推送时,无法显示要推送的分支;Sourcetree远端上面有感叹号。

年少时的棉花糖 4434

Python 进程、线程、协程

计算机系统抽象组成: CPU + 存储器 + IO时间片(timeslice)又称为 “量子”(quantum)或 “处理器片”(processor slice),是分时操作系统分配给每个正在运行的进程微观上的一段 CPU 时间(在抢占内核中是:从进程开始运行直到被抢占的时间)。对于单核cpu同一时刻只能有一个任务运行。1. 并发:交替执行(某时间段内的处理能力)2. 并行:同时执行线程(Thread):是操作系统最小的调度单位, 是一串指令的集合。

qq_60271706的博客 1478

OpenFeign, Zuul, Gateway相互不兼容的问题总结

版本 Lib Vresion spring-cloud-starter-gateway 3.1.0 spring-cloud-dependencies 2021.0.0 spring-cloud-starter-netflix-zuul 2.2.6.RELEASE spring-cloud-starter-openfeign 3.1.0 1. Zuul 与OpenFeign 一起使用的问题 错误信息 jav.

Harry的博客 4132

Python中的协程、线程和进程

协程、多线程和多进程都是实现程序并发执行的方法,不过它们在工作方式和适合的应用场景上存在一些区别。

NLP工程化 2141

基于MicroBlaze与LWIP的FPGA以太网通信实战指南

本文详细介绍了基于MicroBlaze软核处理器与LWIP协议栈的FPGA以太网通信实现方案。通过Vivado工具链配置硬件设计,结合LWIP轻量级TCP/IP协议栈优化,提供高效、低成本的嵌入式网络解决方案,适用于工业控制等场景。文章包含硬件设计、软件配置及常见问题排查等实战指南。

weixin_29290863的博客 533

从硅到氮化镓:用Sentaurus TCAD仿真GaN HEMT功率器件,我踩过的那些坑

本文分享了使用Sentaurus TCAD仿真GaN HEMT功率器件的实战经验,详细解析了从硅基到氮化镓的技术转型中遇到的五大关键挑战:材料参数设置、极化效应建模、网格划分策略、陷阱模型校准以及仿真与实测数据匹配。通过具体案例和参数优化方法,帮助工程师避开常见陷阱,提升TCAD仿真精度与效率。

weixin_28726671的博客 379

python中的进程、线程、协程,它们的区别和联系

1.进程的定义: 进程是系统进行资源分配和调度的一个独立单位。 2.线程的定义: 线程是进程的一个实体,是CPU调度和分派的基本单位,线程是比进程更小的能够独立运行的单位 3.协程的定义: 协程则是程序级别的由程序根据需要自己调度。 在一个线程中会有很多函数,我们把这些函数称为子程序,在子程序执行过程中可以中断去执行别的子程序,而别的子程序也可以中断回来继续执行之前的子程序,这个过程就称为协程。...

梓栋DREM 4664

使用菱FX5U系列PLC实现以太网通信的具体方法示例

接下来,我们将创建一个简单的CPU通信功能,以实现与其他设备的以太网通信。在上述代码中,我们首先设置访问号,然后创建一个数据读取命令(M_READ)和一个数据写入命令(M_WRITE)。此外,在实际应用中,您还需要确保PLC和其他设备之间的网络连接正常,并且遵循相应的通信协议。在上述代码中,我们执行了数据读取命令,并将接收到的响应存储在M_RESPONSE变量中。通过简单CPU通信功能,菱FX5U系列PLC可以实现与其他设备的以太网通信。我们将提供相应的源代码和详细的说明,以帮助您轻松实现这一功能。

DevCyberX的博客 1527

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

现在多进程多线程已经是老生常谈了,协程也在最近几年流行起来。python中有协程库gevent,py web框架tornado中也用了gevent封装好的协程。本文主要介绍进程、线程和协程三者之间的区别。一、概念1、进程进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。每个进程都有自己的独立内存空间,不同进程通过进程间通信来通信。由于进程比较...

weixin_39717865的博客 881

PD3.0详解 协议的时序timer和counter计数

前面介绍了关于PD协议的交互,还有协议层数据各个字段的含义,但是一直没有系统的说关于协议的时序,还有部分counter,就是协议允许发送的次数,或者一些其他计数。 大师匈今天说一下关于这方面的东西,这些东西都是非常关键的东西,但是相对来说PD标准内对时序的要求还是比较宽泛,非常容易能够实现这样的要求。 Timer 1、CRCReceiveTimer 0.9~1.1ms 表示每次通信收到goodcrc的时间,必须在这个时间内收到goodcrc, 我们要注意不是在0.9~1.1ms内,而是第三方可以在这个范

大师匈的博客 5007

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

python中的进程线程和协程

介绍了进程、线程和协程,并通过实例对三种操作进行了展示,最后说明了适合三种并发操作方式的相应场景和任务。

ximu__l的博客 2161

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Python的进程、线程、协程

python中的进程、线程、协程介绍。

守墓人的博客:分析日常生活中的工具和一些学习内容 828

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Python线程进程协程

Python线程进程协程 所讲内容: 多任务的介绍 多任务的概念 线程(重点) 线程(注意点) 多线程-共享全局变量(重点) 多线程-共享全局变量-问题 同步 互斥锁 案例:多任务版udp聊天器 进程以及状态 进程的创建-multiprocessing 进程、线程对比 进程间通信-Queue 进程池Pool 应用:文件夹copy器(多进程版) 生成器 协程-yield 协程-greenlet 协程...

weixin_44217401的博客 1170

python 进程、线程、协程

目录 一、概念 1、进程 2、线程 3、协程 二、区别 1、进程与线程比较 2、协程与线程比较 三、线程 1、基本使用 2、更多方法: 3、线程锁 4、event 5、小结 四、进程 1、基本使用 2、进程数据共享 3、使用特殊的数据类型,来进行穿墙 4、进程锁 5、进程池 6、小结 五、协程 1、greenlet 2、gevent 3、遇到IO操作...

日入上万 825

【Python】进程、线程、协程详解及使用场景解析

GIL,全称(全局解释器锁),是 Python 的主流解释器 CPython 的一个机制。它确保在任意时刻,只有一个线程能够执行 Python 字节码。GIL 的存在使得 Python 的多线程无法真正实现并行计算。多进程:适用于 CPU 密集型任务,如计算和图像处理。推荐使用模块。多线程:适用于 I/O 密集型任务,如网络爬虫和文件操作。推荐使用标准库threading。协程:适用于高并发的 I/O 密集型任务。推荐使用asyncio或gevent。推荐方案:多进程 + 协程。

kdayjj966的博客 1805

Python的线程、进程与协程

进程:进程是操作系统分配资源的基本单位,每个进程都有独立的内存空间,包含代码、数据和系统资源。进程之间相互隔离,一个进程崩溃不会影响其他进程。线程:线程是进程内的执行单元,一个进程可以包含多个线程。线程共享进程的内存空间和资源,因此线程间的通信比进程间更高效,但也更容易出现数据竞争等问题。

Thomas_Cai的记忆殿堂 1538

python进程、线程、协程!

我们都知道计算机是由硬件和软件组成的。硬件中的CPU是计算机的核心,它承担计算机的所有任务。操作系统是运行在硬件之上的软件,是计算机的管理者,它负责资源的管理和分配、任务的调度。程序是运行在系统上的具有某种功能的软件,比如说浏览器,音乐播放器等。每次执行程序的时候,都会完成一定的功能,比如说浏览器帮我们打开网页,为了保证其独立性,就需要一个专门的管理和控制执行程序的数据结构——进程控制块。进程一般由程序、数据集、进程控制块三部分组成。我们编写的程序用来描述进程要完成哪些功能以及如何完成;

2301_78217634的博客 1472

Python爬虫之线程、进程、协程详解

今天学习的主要是关于在Python中线程、进程、协程的知识的理解和应用。

福仔的博客 1115
上一篇: python爬虫之lxml
wl_python
博客等级 码龄9年 21粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值