asyncio异步编程

参考视频:02 协程_哔哩哔哩_bilibili

1.协程:(不是计算机中真实存在的,人为创造出的概念),也可称为微线程。

本质是用一个线程在一段代码中来会切换游走的线程,是一种用户态内的上下文切换技术。

2.python实现协程的几种方法:

greenlet,早期模块

yield关键字

asyncio装饰器(python3.4后支持的)

async、await关键字(python3.5后支持)推荐使用

3.示例

如果一个函数内部使用yield函数,认为他是一个生成器函数。

①通过yield关键字实现协程

②asyncio模块

在python3.4之后的版本支持(普通函数加上装饰器就是协程函数。)

定义两个协程函数,将两个协程函数放到一个task列表,将task列表放到事件循环。

当一个线程在执行他的协程函数时,如果遇到yiled from asyncio的情况,他不会在这一直等待,在等待的过程中会切换到其他的协程函数。

asyncio遇到io阻塞时会自动切换。

③  python3.5 后引入async 和 await关键字。

③的功能与②相同,但是新的版本中,可以不用装饰器,直接使用asyncio关键字,yield from也可以使用await做替换。

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

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

相关文章

Leetcode刷题(异或)

一、2980. 检查按位或是否存在尾随零 奇数二进制形式最右一位一定为1 偶数二进制形式最右一位一定为0 要存在尾随0至少要两个偶数进行或运算 代码 class Solution:def hasTrailingZeros(self, nums: List[int]) -> bool:cnt 0for x in nums:if x%20:cnt1return True if c…

探秘计算机内部的魔法:模拟计算机内部的怎么使用门电路实现运算的奥秘

1.前言 在当今数字时代,我们享受着计算机带来的便利和效率,但很少有人意识到在计算机背后的神秘世界。计算机内部运算的奥秘并非仅仅是一系列简单的加减乘除,而是依托着深奥的门电路与位运算符展开的神秘舞蹈。在这篇博客中,我们…

mfc 带有复选框的ListBox

mfc 带有复选框的 ListBox 效果: 添加 ListBox 控件 从工具箱拖拽 ListBox 控件到窗口上,并设置属性: 包含字符串:true所有者描述:Fixed 给ListBox添加控制变量 添加完后,将m_list_box的类型使用CC…

Aurora 协议学习理解与应用——Aurora 8B10B协议学习

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Aurora 8B10B协议学习之一,理解协议 概述8B10B数据发送和接收Symbol-Pairs传输调度用户PDU传输过程用户PDU接收过程 流控自然流量控制操作自然流量控制延迟自然流…

ECharts数据大屏展示效果

ECharts数据大屏展示效果 前言1、效果预览1.2、视频效果 2、使用框架3、如何处理屏幕自适应效果4、ECharts模块、dataV大屏插件 编写与布局5、往期回顾总结: 前言 数据大屏需整体效果好看,界面缩放自适应大小,全屏展示铺满整个屏幕并自适应&a…

海外云手机为什么适合社媒运营?

如今,社媒营销如果做得好,引流效果好的账号,可以用来带货变现,而外贸、品牌出海也同样都在做社媒营销,Tik Tok、facebook、ins等热门的海外社媒平台都是行业密切关注的,必要的时候,大家会使用海…

22 文件系统

了解了被打开的文件,肯定还有没被打开的文件,就是磁盘上的文件。先从磁盘开始认识 磁盘 概念 内存是掉电易失存储介质,磁盘是永久性存储介质 磁盘的种类有SSD,U盘,flash卡,光盘,磁带。磁盘是…

自制多端同步云笔记 InfiniCloud + RemotelySave + foldersync

InfiniCloud Obsidian 第三方插件 RemotelySave foldersync实现多端同步云笔记【2024-04-16】 一、使用工具二、搭建步骤2.1、注册 InfiniCloud 网盘2.2、搭建PC端与网盘的通信2.2.1、打开 InfiniCloud 中WebDAV配置2.2.2、obsidian中下载 remoted save 第三方插件【需要科学…

loD:如何实现代码的“高内聚、低耦合“

设计模式专栏:http://t.csdnimg.cn/3a25S 目录 1.引用 2.何为"高内聚、低耦合" 3.LoD 的定义描述 4.定义解读与代码示例一 5.定义解读与代码示例二 1.引用 本节介绍最后一个设计原则:LoD(Law of Demeter,迪米特法则)。尽LoD不像SOLID、KI…

ncnn模型部署——训练自己YOLOv5模型转ncnn模型并部署到Android手机端

目录 一、前述二、源码包准备2.1 配套源码包2.2 官网源码包2.2.1 ncnn版YOLOv5源码包下载2.2.2 ncnn预编译库下载2.2.3 拷贝ncnn预编译库 三、可能遇到问题3.1 gradle下载失败3.2 CMake问题3.2.1 报错3.2.2 问题分析3.2.3 解决办法3.2.4 添加环境变量3.2.5 测试CMake 3.3 Unabl…

27. 【Android教程】下拉选择框 Spinner

本节我们将学习 Android 提供的下拉选择框——Spinner,它也是 Adapter 的常客。不仅仅是在 Android 端,在 Windows 上我们也经常会看到 Spinner 类型的样式。通常它是以下拉的形式存在,Spinner 在下拉列表中包含很多可供用户选择的选项&#…