广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python3 异步IO--async/
  • 604
分享到

Python3 异步IO--async/

IOasync 2023-01-31 08:01:04 604人浏览 独家记忆

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

摘要

python3 异步io--async/await 用asyncio提供的@asyncio.coroutine可以把一个generator标记为coroutine类型,然后在coroutine内部用yield from调用另一个corout

python3 异步io--async/await

asyncio提供的@asyncio.coroutine可以把一个generator标记为coroutine类型,然后在coroutine内部用yield from调用另一个coroutine实现异步操作。
为了简化并更好地标识异步IO,从python 3.5开始引入了新的语法asyncawait,可以让coroutine的代码更简洁易读。
请注意,asyncawait是针对coroutine的新语法,要使用新的语法,只需要做两步简单的替换:

把@asyncio.coroutine替换为async;
把yield from替换为await。

让我们对比一下上一节(Python3 异步--asyncio)的代码:

@asyncio.coroutine
def hello():
    print("Hello world!")
    r = yield from asyncio.sleep(1)
    print("Hello again!")

用新语法重新编写如下:

async def hello():
    print("Hello world!")
    r = await asyncio.sleep(1)
    print("Hello again!")

小结

Python从3.5版本开始为asyncio提供了async和await的新语法;
注意新语法只能用在Python 3.5以及后续版本,如果使用3.4版本,则仍需使用上一节的方案。
上节(python3 异步--asyncio)代码重写:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import threading
import asyncio

async def hello():
    print('Hello world! (%s)' % threading.currentThread())
    await asyncio.sleep(1)
    print('Hello again! (%s)' % threading.currentThread())

loop = asyncio.get_event_loop()
tasks = [hello(), hello()]
loop.run_until_complete(asyncio.wait(tasks))
loop.close()

本文转自:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00144661533005329786387b5684be385062a121e834ac7000

--结束END--

本文标题: Python3 异步IO--async/

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

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

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

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

下载Word文档
猜你喜欢
  • Python3 异步IO--async/
    Python3 异步IO--async/await 用asyncio提供的@asyncio.coroutine可以把一个generator标记为coroutine类型,然后在coroutine内部用yield from调用另一个corout...
    99+
    2023-01-31
    IO async
  • Python3 异步IO--asynci
    Python3 异步IO--asyncio asyncio是Python 3.4版本引入的标准库,直接内置了对异步IO的支持。 asyncio的编程模型就是一个消息循环。我们从asyncio模块中直接获取一个EventLoop的引用,然后...
    99+
    2023-01-31
    IO asynci
  • Python3 异步IO--协程
    Python3 异步IO--协程 概念: 协程,又称微线程,纤程。英文名Coroutine。 协程的概念很早就提出来了,但直到最近几年才在某些语言(如Lua)中得到广泛应用。 子程序,或者称为函数,在所有语言中都是层级调用,比如A调用B...
    99+
    2023-01-31
    IO 协程
  • Python3 异步--aiohttp
    Python3 异步--aiohttp asyncio可以实现单线程并发IO操作。如果仅用在客户端,发挥的威力不大。如果把asyncio用在服务器端,例 如Web服务器,由于HTTP连接就是IO操作,因此可以用单线程+coroutin...
    99+
    2023-01-31
    aiohttp
  • requests-html async异步使用
    requests-html async的使用示例代码:from requests_html import AsyncHTMLSession asession = AsyncHTMLSess...
    99+
    2023-01-31
    requests html async
  • Python异步编程Async/Awai
    python 从3.5开始从语言层面提供了新的异步编程语法。 import asyncio async def hello(): print("hello the world") r = await asyncio....
    99+
    2023-01-31
    Python Async Awai
  • oracle 异步IO简述
           在同步IO中,线程启动一个IO请求之后就进入等待状态,知道IO结束后线程才结束等待,转而去处理其他请求。异步IO将IO请求发送到内...
    99+
    2022-10-18
  • Oracle 之 AIO (异步io)
     Linux 异步 I/O (AIO)是 Linux 内核中提供的一个增强的功能。它是Linux 2.6 版本内核的一个标准特性,AIO 背后的基本思想是允许进程发起很多 I/O 操作,而不用...
    99+
    2022-10-18
  • golang是异步io吗
    golang不是异步io,但golang提供了一种简化并发编程的方式,使得在处理I/O操作时可以实现异步效果。在Golang中,可以使用goroutines和channels实现非阻塞的异步I/O操作,Golang还提供了一些标准库,例如n...
    99+
    2023-07-24
  • python3--IO模型,阻塞,非阻塞,多路复用,异步,selectors模块
    协程回顾协程 实际上是一个线程执行了多个任务,遇到IO就切换示例:import time import gevent def func():     print('...
    99+
    2023-01-30
    多路 复用 模块
  • 一步步理解python的异步IO
      分享至:一步步理解python的异步IO 前言 看到越来越多的大佬都在使用python的异步IO,协程等概念来实现高效的IO处理过程,可是我对这些概念还不太懂,就学习了一下。 因为是初学者,在理解上有很多不到位的地方,如果有错误,还希...
    99+
    2023-01-31
    python IO
  • nodejs是同步还是异步io
    Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它允许开发者使用JavaScript来编写服务器端代码。在Node.js中,I/O是一个核心概念,它非常重要,因为在服务器应用程序中,I/O操作往往是最常见的操作...
    99+
    2023-05-23
  • python3异步编程-实例
    Python3 异步编程实例篇 本篇主要内容: 启动一个线程 启动多线程 获取线程名字 让线程按顺序执行 给线程加上日志 线程类的实现 线程锁 多线程使用全局变量下锁的重要性 锁嵌套的问题 使用队列来存储线程数据 取得线程中的线果 多线程...
    99+
    2023-01-31
    实例
  • asyncio异步IO--协程(Coro
    摘要:本文翻译自Coroutines and Tasks,主要介绍asyncio中用于处理协程和任务的方法和接口。在翻译过程中,译者在官方文档的基础上增加了部分样例代码和示意图表,以帮助读者对文档的理解。本文内容主要针对python3.7...
    99+
    2023-01-30
    IO asyncio Coro
  • 浅谈node.js中async异步编程
    1.什么是异步编程? 异步编程是指由于异步I/O等因素,无法同步获得执行结果时, 在回调函数中进行下一步操作的代码编写风格,常见的如setTimeout函数、ajax请求等等。 示例: for (v...
    99+
    2022-06-04
    浅谈 node async
  • Python异步IO怎么理解
    这篇文章主要讲解了“Python异步IO怎么理解”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python异步IO怎么理解”吧!Python 3.4标准库有一个新模块asyncio,用来支持...
    99+
    2023-06-17
  • C#异步编程之async/await详解
    目录概述C#异步编程用法async/await和Task简介asyncawaitTask其他实现原理剖析实现原理示例概述 异步这个概念在不同语境下有不同的解释,比如在一个单核CPU里...
    99+
    2023-03-11
    C#异步编程async await C#异步编程 C# async await
  • 浅析JS的异步函数async/await
    async/await 可能会产生误导有些文章将 async/await 与 Promise 进行比较,并声称它是 JavaScript 异步编程发展的下一代,这一点个人觉得有点误导,个人认为 async/await 是一种改进,一个语法糖...
    99+
    2023-05-14
    JavaScript ECMAScript 6 Node.js
  • java中@Async异步调用的方法
    本篇内容主要讲解“java中@Async异步调用的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java中@Async异步调用的方法”吧!前言异步调用与同步调用同步调用:顺序执行,通过调用返...
    99+
    2023-07-02
  • SpringBoot中异步调用@Async的方法
    本篇内容主要讲解“SpringBoot中异步调用@Async的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringBoot中异步调用@Async的方法...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作