IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python的异步编程:async,await -> 正文阅读

[Python知识库]Python的异步编程:async,await

原文转自:https://drizzle.vip/archives/275

我第一次接触 异步编程 肯定是在JavaScript,第一次写延时函数的时候很奇怪为啥延时函数下面的代码会直接执行而不等待时间结束,然后就对异步编程有了一点点的了解,后面在看一个Python的qq机器人项目的时候发现里面使用了大量的异步函数,可惜没有去认真学,今天就来重新 补补 python 的异步实现~

什么是 异步 ? 什么是 同步?

举一个简单的例子,假设有一个爬虫程序,需要爬取一百张图片,同步的方法就是从第一张开始爬取,先发送请求,然后下载,保存,然后循环继续请求第二张,下载保存······ 异步的方式呢,就是遇到需要消耗大量时间的IO时会先去执行其他的函数,我们的下载保存就是整个爬虫程序中最需要时间的部分,可以通过异步编程,在发送第一个图片下载请求后等待下载图片的时间不闲着继续发送第二个请求,然后一直发送,发送请求的速度可以忽略,相当于100张图片在同时下载,不考虑自身网络情况,假设一张图片的下载需要1s,那同步的实现方式需要100s才能爬取全部图片,而异步只需要1s多一点,效率翻 N 倍!

怎样实现异步编程

从 Python 3.5 开始引入了 async 和 await 关键词:

import asyncio


async def a():
    print('a')
    await asyncio.sleep(2)
    print('a')


async def b():
    print('b')
    print('b')


asyncio.run(asyncio.wait([a(), b()]))

如上述代码块,在函数前声明async就表示当前函数为协程函数,函数内可以使用await 用于等待高 IO 代码的执行,其中的a函数在 输出第一行a之后会休眠2s,这时候不会去一直等他,而是会先去执行b函数,所以最终的输出结果为:

a
b
b
a

最后一行 asyncio.run(asyncio.wait([a(), b()])) 中的 asyncio.run() 这个API是Python 3.7 引入的,用来简便的去执行异步函数~

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章           查看所有文章
加:2022-04-14 23:50:39  更:2022-04-14 23:56:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 17:49:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码