iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python3 使用 asyncio
  • 754
分享到

python3 使用 asyncio

asyncio 2023-01-31 08:01:59 754人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

python3提供了协程专用的关键字async await, 还提供了asyncio库, 来进行异步非阻塞的io操作 异步非阻塞的io操作? 没有老师检查我也不知道自己算不算完全懂了, 就不做无用功尝试说得通俗易懂了.想要从原理开始理解的

python3提供了协程专用的关键字async await, 还提供了asyncio库, 来进行异步非阻塞的io操作

异步非阻塞的io操作?

没有老师检查我也不知道自己算不算完全懂了, 就不做无用功尝试说得通俗易懂了.
想要从原理开始理解的话, 推荐tornado的文档

我为何使用asyncio来代替传统线程进行io操作?

  • 由于时间主要耗费在io操作上, 其他操作并发需求不大.
  • 不用规定并行多少, 比较方便稳定.
  • 熟悉tornado工作原理

举例

并行访问某网页十次

import asyncio
import requests
loop = asyncio.get_event_loop()
async def t():                                                    
    get = lambda:requests.get('Http://baidu.com')
    temp = await loop.run_in_executor(None, get)
    print(temp)   
loop.run_until_complete(asyncio.gather(*[t() for i in range(10)]))

上面这几行代码就可以完成这些操作了.

loop = asyncio.get_event_loop() 协程本身并不具备并行能力, 但是有了这个事件loop就可以进行并行io请求

get = lambda:requests.get('http://baidu.com')
temp = await loop.run_in_executor(None, get)

一般函数是无法被await修饰的, 必须用api封装一下(感觉很像threading), 我之所以再封装一次get, 是因为run_in_executor传参数比较坑, 不支持**kwargs

loop.run_until_complete(asyncio.gather(*[t() for i in range(10)]))

run_until_complete这个api是指运行内容物直到结束(api如其名), gather是把任务组合到一起, 如果*的部分有迷惑的话, 你写asycio.gather(t(),t(), t()...)也是可以的.

おわり.

--结束END--

本文标题: python3 使用 asyncio

本文链接: https://www.lsjlt.com/news/193486.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python3 使用 asyncio
    python3提供了协程专用的关键字async await, 还提供了asyncio库, 来进行异步非阻塞的io操作 异步非阻塞的io操作 没有老师检查我也不知道自己算不算完全懂了, 就不做无用功尝试说得通俗易懂了.想要从原理开始理解的话...
    99+
    2023-01-31
    asyncio
  • python3 asyncio
    asyncio 是用来编写 并发 代码的库,使用 async/await 语法。asyncio 被用作多个提供高性能 Python 异步框架的基础,包括网络和网站服务,数据库连接库,分布式任务队列等等...
    99+
    2023-01-31
    asyncio
  • 怎么在python3协程中使用asyncio
    怎么在python3协程中使用asyncio?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Python主要用来做什么Python主要应用于:1、Web开发;2、...
    99+
    2023-06-14
  • 简单有效上手Python3异步asyncio问题
    目录Python3异步asyncio问题更新下面是学习过程中记录的偏低层实现的资料最基本的定义和应用什么时候使用异步并发和并行异步结果回调总结Python3异步asyncio问题 官...
    99+
    2023-01-03
    Python3异步asyncio Python3 asyncio Python3异步
  • Python asyncio常用函数如何使用
    这篇文章主要介绍“Python asyncio常用函数如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python asyncio常用函数如何使用”文章能帮助大家解决问题。...
    99+
    2023-07-05
  • 用 uWSGI 来跑 asyncio
    最近关注的有点杂,所以也挺久没更新博客了。这一篇主要讨论这些技术:WSGI、py3k、werkzeug、asyncio、uWSGI、nginx。 先从最简单的开始说—— WSGI。根据定义,这是一种 web 服务器接口规范,源自 Pyt...
    99+
    2023-01-31
    uWSGI asyncio
  • Python中使用asyncio 封装文件读写
    前言 和网络 IO 一样,文件读写同样是一个费事的操作。 默认情况下,Python 使用的是系统的阻塞读写。这意味着在 asyncio 中如果调用了 f = file('xx') f.read()...
    99+
    2022-06-04
    文件 Python asyncio
  • python3——print使用
        print的初步认识:对于科班出身的或有相关经验的人来说,学习python是相当有趣的事,因为可以做日常任务,比如自动备份你的MP3;可以做网站,如YouTube就是Python写的;可以做网络游戏的后台,很多在线游戏的后台都是P...
    99+
    2023-01-31
    print
  • Python中如何将Tqdm与Asyncio结合使用呢
    目录简介困扰已有方法tqdm异步tqdm 概述将 tqdm 与异步集成简介 困扰 在 Python 中使用并发编程来提高效率对于数据科学家来说并不罕见。在后台观察各种子进程或并发线程...
    99+
    2023-05-12
    Python结合使用Tqdm Asyncio Python Tqdm Asyncio Python Tqdm Python Asyncio
  • asyncio 的 coroutine对象 与 Future对象使用指南
    coroutine 与 Future 的关系 看起来两者是一样的,因为都可以用以下的语法来异步获取结果, result = await future result = await coroutine...
    99+
    2022-06-04
    对象 使用指南 asyncio
  • Python使用Asyncio进行web编程方法详解
    目录前言什么是同步编程什么是异步编程ayncio 版 Hello 程序如何使用 asyncio总结前言 许多 Web 应用依赖大量的 I/O (输入/输出) 操作,比如从网站上下载图...
    99+
    2022-11-11
  • Python 中怎么使用Asyncio实现异步编程
    Python 中怎么使用Asyncio实现异步编程,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。异步是怎么一回事在传统的顺序编程中, 所有发送给解释器的指令会一条条被执行。...
    99+
    2023-06-17
  • python3使用PIL、tessera
    第一步:下载安装包根据https://github.com/tesseract-ocr/tesseract/wiki 我找到非官方的安装包,好像我只看到64位的安装包http://digi.bib.uni-mannheim.de/tesse...
    99+
    2023-01-31
    PIL tessera
  • python3使用 openpyxl 操
    注意: openpyxl只能操作 xlsx文件而不能操作 xls文件 安装 openpyxl:          pip install openpyxl 示例: import openpyxl def update_offer(i,...
    99+
    2023-01-31
    openpyxl
  • linux python3使用openc
    2018/3/5更新 在另一台电脑上通过编译源代码的方法无法成功安装,网上找到了更简单的方法 sudo pip3 install -U opencv-python 2018/01/04更新 安装环境:Linux mint...
    99+
    2023-01-31
    linux openc
  • python3 and django使用
    django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named 'MySQLdb' python3中使用mysql 用的是...
    99+
    2023-01-31
    django
  • python3 使用argparse更
    问题与现状 通常情况下,我们都会使用sys.argv[n]这样的手段来获取python脚本的输入参数。这样做的缺点如下:1 参数输入和获取必须严格按照顺序2 在获取参数的同时需要写一点额外的代码对输入参数进行简单的合法性检查3 在输入参数...
    99+
    2023-01-31
    argparse
  • python协程与asyncio库怎么用
    今天小编给大家分享一下python协程与asyncio库怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1.asynci...
    99+
    2023-06-30
  • Python使用asyncio异步时的常见问题总结
    目录1. 如何停止任务?2. 如何等待任务完成?3. 如何从任务中获取返回值?4. 如何在后台运行任务?5. 如何等待所有后台任务?1. 如何停止任务? 我们可以通过 asyncio...
    99+
    2023-05-16
    Python asyncio异步常见问题 Python asyncio异步 Python asyncio
  • Python使用asyncio包处理并发的实现代码
    使用 asyncio 包处理并发 asyncio包:使用事件循环驱动的协程实现并发。 线程与协程的对比 '\ thinking' 旋转等待效果 In [1]: imp...
    99+
    2022-12-08
    Python asyncio包 Python asyncio包处理并发
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作