Python asyncio异步编程简单实现

news2024/11/20 14:21:20

今天继续给大家介绍Python相关知识,本文主要内容是Python asyncio异步编程简单实现。

一、asyncio事件循环简介

asyncio引入了事件循环的概念。事件循环是一个死循环,还循环会检测并执行某些代码。在Python中,引入了asyncio模块后,执行命令:

loop=asyncio.get_event_loop()

可以生成一个事件循环,而执行命令:

loop.run_until_complete(TASK)

则可以将一个任务TASK放入该事件循环的任务列表,并使得事件循环开始运行。当事件循环中的所有事件执行完毕后,事件循环会退出。

二、async协程函数简介

在Python3.5以后,引入了async关键字,使用async关键字修饰的函数,即为协程函数。例如:

async def fun():
	pass

协程函数在调用后,不会立即执行,而是会返回一个协程对象。协程对象结合事件循环,即可执行。

三、await关键字

await关键字是Python3.5以后和async关键字一起引入的关键字。该关键字后面可以跟协程对象、Future对象以及Task对象。

四、async异步编程简单实现

下面,我们就根据上述理论,简单实现有一个async异步函数,代码如下所示:

import asyncio

async def fun():
    print("start")
    await asyncio.sleep(2)
    print("end")

asyncio.run(fun())

上述代码执行结果如下所示:
在这里插入图片描述
注意,在上述代码中,我们使用了asyncio.run()函数,该函数可以快速执行协程函数,但是这个函数只可以在Python3.7以上的版本中使用。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

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

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

相关文章

动态内存管理:学习笔记9

目录 一.前言 二.动态内存函数 1.malloc和free 2.calloc函数 3. realloc函数(动态内存空间调整函数) 情形一:扩容时,原内存地址处可以容纳调整后的动态内存 情形二:扩容时,原内存地址无法容纳调整后的动态内存 三.C/C程序…

MATLAB实现费诺编码的计算与分析

一、实验目的 1、理解霍费诺编码的原理。 2、掌握费诺编码的方法和步骤。 3、熟悉费诺编码的效率。 4、本实验用Matlab语言编程实现费诺(Fano)编码。 二、实验环境 windows XP,MATLAB 7 三、实验原理 费诺编码算法如下:在信源…

构建前端项目

1.使用vite构建vue项目 vite构建vue项目,输入以下命令: npm init vitelatest接着按照提示的命令选择项目的名称、框架、语言。接着项目就构建完成了。 接着将构建好的项目:vite-demo拖入vsCode里面,在package.json中可以看到项…

redis基础命令使用

目录 Redis redis存储结构(KV) String string类型介绍 string类型数据的基础操作 string类型数据的扩展操作 List list类型介绍 list类型数据基本操作 list类型数据扩展操作 hash hash类型介绍 hash类型数据的基本操作 hash类型数据扩展操…

傅里叶变换

傅里叶变换 傅里叶变换常用的三个函数 函数一: numpy.fft.fft2: 复数数组 函数二: numpy.fft.fftshift: 将零频率分量移动到频谱中心 函数三: 20*np.log(np.abs(fshift)) 设置频谱的范围 import cv2 import numpy as np import matplotlib.pyplot as pltdef test_1():img cv2…

再说多线程(三)——Mutex类

1.引子在前面2节,我们已经讨论了Lock语句和Monitor类,Locks 和 Monitors 确保 InProcess 线程的线程安全,即由应用程序本身生成的线程,即内部线程。但是,如果线程来自 OutProcess,即来自外部应用程序&#…

Java 诊断利器 Arthas monitor/watch/trace命令

一、监控相关命令介绍 二、监控相关命令 2.1、运行Demo 2.2、monitor 命令 2.2.1、方法监控 2.3、watch 命令 (重要) 2.3.1、观察函数调用返回时的参数、this 对象和返回值 2.3.2、查看函数调用的入参和返回值 2.3.3、深度遍历 x 说明 2.3.4、查…

检验仪器控制怎么停止的

之前介绍仪器控制启动是按维护的调用M和仪器ID组串直接j启动进程,进程在调用Start启动TCP。 组装执行M串用j启动进程 启动TCP通道,成功之后就到f的死循环了 死循环这里容易有个误解,以为Stop是停止仪器接口的。其实这个Stop是判断要不要…

一灯大师,基于imx6ull点亮LED灯

一.imx6ull GPIO原理1. STM32 GPIO回顾我们一般拿到一款全新的芯片,第一个要做的事情的就是驱动其 GPIO,控制其 GPIO 输出高低电平,我们学习 I.MX6U 也一样的,先来学习一下 I.MX6U 的 GPIO。在学习 I.MX6U的 GPIO 之前&#xff0c…

Spark WordCount 案例

文章目录Spark WordCount 案例1、程序连接 Spark2、WordCount 案例示例3、复杂版 WordCount4、Spark 框架WordcountSpark WordCount 案例 1、程序连接 Spark 首先这个Scala spark程序和spark的链接,跟sql编程类似。首先new 一个新的val context SparkContext()对…

谷粒商城-高级篇-Day10-ElasticSearch

初步检索 1、_cat GET /_cat/nodes:查看所有节点 GET/_cat/health:查看es健康状况 GET/_cat/master:查看主节点 GET/_cat/indices:查看所有索引–相当于查询所有数据库 2、索引一个文档 put:http://192.168.205.128:9200/customer/external/1 {"name&qu…

Qt之加载百度离线地图(WebKit和WebEngine)

最近翻看进年前写了一篇关于百度离线地图的博客:Qt加载百度离线地图,发现存在很多问题,比如不能加载折线等图形覆盖物;只支持QtWebKit,不支持QtWebEngine。 之前做项目需要在百度离线地图上绘制Mesh拓扑图,必须添加折线覆盖物,使用的是百度离线地图API V2.1,满足需求。…

Java注解详解

什么是注解 ​ 用一个词就可以描述注解,那就是元数据,即一种描述数据的数据。所以,可以说注解就是源代码的元数据 元注解 JDK1.5之后内部提供的注解: Deprecated 意思是“废弃的,过时的”Override 意思是“重写、覆…

算法训练营 day18 二叉树 找树左下角的值 路径总和 从中序与后序遍历构建二叉树

算法训练营 day18 二叉树 找树左下角的值 路径总和 从中序与后序遍历构建二叉树 找树的左下角 513. 找树左下角的值 - 力扣(LeetCode) 给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节…

Java --- JUC之原子类

目录​​​​​​​ 一、基本类型原子类 二、数组类型原子类 三、引用类型原子类 四、对象的属性修改类型原子类 五、原子操作增强类 5.1、高性能热点商品应用 5.2、LongAdder架构图 5.3、源码分析 一、基本类型原子类 public class AtomicTest1 {public static final…

canvas:基础知识【直线和矩形】

canvas,就是画布,是HTML5和核心技术之一,结合JavaScript,可以绘制各种各样的图形,比如矩形、曲线、圆形等等。另外,canvas可以绘制图表、动画效果、游戏开发。 基本图形汇中有直线和曲线。常见的直线图形是…

arduino rc522模块使用

rfid IC卡 先了解IC卡一些前置知识。 首先我们会有一张ic卡(M1类型IC卡,一般买到的都是1K存储空间),在rc522代码中会出现这个,就是对IC卡进行检查PICC_TYPE_MIFARE_4K和PICC_TYPE_MIFARE_1K就是一种卡片类型不同大小…

零基础学MySQL(二)-- 表的创建,修改,删除

文章目录🎈一、创建表1️⃣基本语法2️⃣入门案例🎆二、MySQL常用数据类型1️⃣数值型(整型)默认有符号2️⃣数值型(bit)3️⃣数值型(浮点型)默认有符号4️⃣字符串的基本使用5️⃣字…

1584_AURIX_TC275_SMU的调试以及部分寄存器

全部学习汇总: GreyZhang/g_TC275: happy hacking for TC275! (github.com) 前面学习的过程中,突然间减速了不少。但是为了保证学习的推进,还是得有每天的稳定输出。我的策略是多看,多处理,之后每天整理10页标注的文档…

设计模式相关内容介绍

1.学习设计模式好处 提高编程能力、思维能力、设计能力程序设计更加标准化、代码编制更加工程化,软件开发效率大大提高,缩短项目周期设计的代码可重用性高、可读性强、可靠性高、 灵活性好、可维护性强 2.设计模式分类 创建型模式 提供创建对象的机制…