目录

python 协程 通俗理解

Python 的 asyncio 协程,最擅长的是:

批量下载文件的例子:

协程的优势:


python 协程 通俗理解

def my_coroutine():print("开始")x = yield 1print("拿到了:", x)yield 2co = my_coroutine()
print(next(co))      # 输出:开始 -> 1
print(co.send(99))   # 输出:拿到了:99 -> 2

开始
1
拿到了:99
2
这说明我们可以把“外部值”传进函数中间,并让它继续从“上次停下的地方”执行。

Python 的 asyncio 协程,最擅长的是:

适合的 I/O 类型举例
网络 I/O请求网页、数据库、接口
Socket I/O聊天服务器、RPC、推送
异步文件操作(需特殊库)

aiofilesrun_in_executor()

批量下载文件的例子:

import asyncio
import aiohttp
import timeasync def fetch(session, url):print(f"开始下载 {url}")async with session.get(url) as response:text = await response.text()print(f"{url} 下载完毕,长度:{len(text)}")async def main():urls = ['https://www.example.com'] * 5async with aiohttp.ClientSession() as session:tasks = [fetch(session, url) for url in urls]await asyncio.gather(*tasks)start = time.time()
asyncio.run(main())
print("耗时:", time.time() - start)

协程的优势:

对比项多线程协程
内存开销较高(每个线程有栈空间)极低(协程本质是状态机)
上下文切换操作系统级别,重用户态,轻
启动成本
并发数量受线程数限制(数百)可成千上万个协程
异常处理分散,不好控更集中统一
适合场景CPU密集型任务I/O密集型任务(网络、数据库等)

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

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

相关文章

【学习笔记】蒙特卡洛仿真与matlab实现

概述 20 世纪 40 年代,由于电子计算机的出现, 借助计算机可以实现大量的随机抽样试验,为利用随机试验方法解决实际问题提供了便捷。 非常具代表性的例子是, 美国在第二次世界大战期间研制原子弹的“曼哈顿计划”中,为了…

HTTP/3.x协议详解:基于QUIC的下一代Web传输协议

一、HTTP/3协议概述 HTTP/3是超文本传输协议(HTTP)的第三个正式版本,由IETF(互联网工程任务组)于2022年正式标准化(RFC 9114)。其核心创新在于完全基于QUIC协议替代传统TCP,结合UDP…

【SQL】使用UPDATE修改表字段的时候,遇到1054 或者1064的问题怎么办?

我在使用python连接sql修改表格的时间字段的时候,遇到这样一个问题:ProgrammingError: (pymysql.err.ProgrammingError) (1064, “You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the ri…

【字节跳动】数据挖掘面试题0013:怎么做男女二分类问题, 从抖音 app 提供的内容中。

文章大纲 🔍 一、问题定义与数据基础数据源及预处理:⚙️ 二、特征工程方案1. 文本特征2. 视觉特征3. 音频与行为特征4. 上下文特征🤖 三、模型选型与训练1. 基础模型对比2. 多模态融合模型3. 训练技巧📊 四、评估与优化策略1. 评估指标2. 典型问题优化3. 算法偏差控制�…

HTTP请求走私漏洞

一、漏洞定义与核心原理HTTP请求走私(HTTP Request Smuggling)是一种利用前端服务器(如代理、负载均衡器)与后端服务器在解析HTTP请求时的不一致性,绕过安全机制并执行恶意操作的攻击技术。其核心在于混淆请求边界&…

Javaweb - 10.1 Servlet

目录 Servlet 简介 动态资源和静态资源 Servlet 简介 Servlet 开发流程 目标 开发过程 开发一个 web 类型的 module 开发一个 form 表单 开发一个 UserServlet 在 web..xml 为 userServlet 配置请求路径 Edit Configurations 启动项目 完! Servlet 简介…

手机能用酒精擦吗?

对于电视、电脑屏幕来说,为了避免反光、改善显示效果,会在屏幕表面覆上一层“抗反射涂层”。不同厂商设计的涂层材料并不相同,酒精作为良好的溶剂,确实会损坏可溶的涂层。手机作为触控产品,通常会在屏幕表面增加“疏水…

【图像处理基石】图像超分辨率有哪些研究进展值得关注?

近年来,图像超分辨率(SR)领域在深度学习技术的推动下取得了显著进展,尤其在模型架构优化、计算效率提升和真实场景适应性等方面涌现出诸多创新。以下是基于最新研究的核心进展梳理: 一、高效大图像处理:像素…

Windows系统下WSL从C盘迁移方案

原因:一开始装WSL的时候放在了C盘,这下好了,跑了几个深度学习模型训练后,C盘快满了,这可怎么办?可愁坏了。没关系,山人自有妙计。我们将WSL迁移到D盘或者E盘呀。一.迁移操作步骤前期准备&#x…

金融时间序列机器学习训练前的数据格式验证系统设计与实现

金融时间序列机器学习训练前的数据格式验证系统设计与实现 前言 在机器学习项目中,数据质量是决定模型成功的关键因素。特别是在金融时间序列分析领域,原始数据往往需要经过复杂的预处理才能用于模型训练。本文将详细介绍一个完整的数据格式验证系统&…

cocos2dx3.x项目升级到xcode15以上的iconv与duplicate symbols报错问题

cocos2dx3.x项目升级xcode15以上后会有几处报错。1. CCFontAtlas.cpp文件下的iconv与iconv_close的报错。修改如下:// iconv_close(_iconv);iconv_close((iconv_t)_iconv);iconv((iconv_t)_iconv, (char**)&pin, &inLen, &pout, &outLen); /…

HTTP/3.0的连接迁移使用连接ID来标识连接为什么可以做到连接不会中断

一定要结合图文一起理解!! 文章目录文字描述传统方式:HTTP/2 基于 TCP 的连接(就像打固定电话)HTTP/3 基于 QUIC 的连接迁移(就像用带“通话ID”的手机)总结一下图文详解HTTP2.0传统方式&#x…

让工作效率翻倍的终极神器之被工具定义的编程时代(VS Code + GitHub Copilot + JetBrains全家桶)

目录一、引言:被工具定义的编程时代二、背景:传统开发模式的效率瓶颈2.1 认知负荷过载2.2 工具链断层三、效率翻倍工具链深度解析3.1 智能代码编辑器:从打字机到智能助手3.2 版本控制大师:Git的隐藏技能3.3 自动化脚本&#xff1a…

docker部署单机gitlab

环境准备: 证书: acme.sh --issue --dns dns_ali -d gitlab.chandz.com -d *.chandz.comcp /root/.acme.sh/gitlab.chandz.com_ecc/* /data/docker-data-volume/gitlab/ssl/目录: mkdir -p /data/docker-data-volume/gitlab cd /data/docker-…

【K8S】在 Kubernetes 上配置安装 Nginx Ingress 控制器指南

文章目录架构概览先决条件部署方案选择方案一:手动 YAML 部署核心组件详解方案二:Helm快速部署(生产推荐)验证部署DNS配置策略方案A:单域名映射方案B:通配符映射(推荐)应用实战&…

SHA-256算法详解——Github工程结合示例和动画演示

近日笔者在学习区块链的相关知识,接触到SHA-256算法,这里做一个知识梳理和总结。 强烈推荐大家自行去学习下面链接github上的工程,作者的动画演示和解释做的非常出色,逻辑非常清晰,B站搬运的对应的油管的讲解视频也放…

C语言模块化编程思维以及直流电机控制(第四天)

👨‍💻个人主页:开发者-削好皮的Pineapple! 👨‍💻 hello 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 削好皮的Pineapple! 原创 👨‍&#x1f4…

【PTA】数据结构与算法0001:1025 反转链表

文章大纲写在前面测试用例ac代码学习代码知识点小结写在前面 实现思路 结构体封装数据 根据order重新排序k区间值迭代翻转 n整除k,则最后地址输出"-1"非整除,最后剩余区间,原序输出。最后地址输出"-1" 题目有难度&…

深入解析 .NET 泛型:从原理到实战优化

在现代软件开发中,代码复用性和性能优化是开发者永恒的追求。.NET 泛型作为一项强大的语言特性,不仅能够帮助我们消除重复代码,还能显著提升代码的类型安全性和运行效率。本文将带你全面了解 .NET 泛型,从基本概念到高级用法&…

Excel 处理软件 内容复制工具:工作表批量复制 + 合并拆分简洁操作零门槛

各位办公小能手们!今天给你们介绍一款超牛的软件——Excel内容复制工具。软件下载地址安装包 这可是专门为了让Excel数据处理效率蹭蹭往上涨而设计的辅助软件呢!它的主要功能可多啦,能批量复制工作表,还能把好多表格合并到同一个…