说明:需要Python 3.7+

1、并发运行两个coroutine,写法一: 用Task

import asyncio
import time async def say_after(delay, what):
await asyncio.sleep(delay)
print(what) async def main():
task1 = asyncio.create_task(
say_after(1, 'hello')) task2 = asyncio.create_task(
say_after(2, 'world')) print(f"started at {time.strftime('%X')}") # Wait until both tasks are completed (should take around 2 seconds.)
r1 = await task1
r2 = await task2
print(f"finished at {time.strftime('%X')}")
print("result: ", r1, r2) asyncio.run(main())

运行时间:2s

1、并发运行两个coroutine,写法二: 用 gather

import asyncio
import time async def say_after(delay, what):
await asyncio.sleep(delay)
print(what) async def main():
print(f"started at {time.strftime('%X')}") result = await asyncio.gather(say_after(1, 'hello'), say_after(2, 'world')) print(f"finished at {time.strftime('%X')}")
print("result: ", result) asyncio.run(main())

运行时间:2s

说明:

一、使用async def 将方法变成协程,用await修饰有阻塞的操作

二、await后可跟三种类型: 协程任务 和 Future.

asyncio基础用法的更多相关文章

  1. asyncio 基础用法

    asyncio 基础用法 python也是在python 3.4中引入了协程的概念.也通过这次整理更加深刻理解这个模块的使用 asyncio 是干什么的? asyncio是Python 3.4版本引入 ...

  2. PropertyGrid控件由浅入深(二):基础用法

    目录 PropertyGrid控件由浅入深(一):文章大纲 PropertyGrid控件由浅入深(二):基础用法 控件的外观构成 控件的外观构成如下图所示: PropertyGrid控件包含以下几个要 ...

  3. logstash安装与基础用法

    若是搭建elk,建议先安装好elasticsearch 来自官网,版本为2.3 wget -c https://download.elastic.co/logstash/logstash/packag ...

  4. elasticsearch安装与基础用法

    来自官网,版本为2.3 注意elasticsearch依赖jdk,2.3依赖jdk7 下载rpm包并安装 wget -c https://download.elastic.co/elasticsear ...

  5. BigDecimal最基础用法

    BigDecimal最基础用法 用字符串生成的BigDecimal是不会丢精度的. 简单除法. public class DemoBigDecimal { public static void mai ...

  6. Vue组件基础用法

    前面的话 组件(Component)是Vue.js最强大的功能之一.组件可以扩展HTML元素,封装可重用的代码.根据项目需求,抽象出一些组件,每个组件里包含了展现.功能和样式.每个页面,根据自己所需, ...

  7. Smarty基础用法

    一.Smarty基础用法: 1.基础用法如下 include './smarty/Smarty.class.php';//引入smarty类 $smarty = new Smarty();//实例化s ...

  8. 前端自动化测试神器-Katalon的基础用法

    前言 最近由于在工作中需要通过Web端的功能进行一次大批量的操作,数据量大概在5000左右,如果手动处理, 完成一条数据的操作用时在20秒左右的话,大概需要4-5个人/天的工作量(假设一天8小时的工作 ...

  9. Bootstrap fileinput:文件上传插件的基础用法

    官网地址:http://plugins.krajee.com/ 官网提供的样例:http://plugins.krajee.com/file-input/demo 基础用法一 导入核心CSS及JS文件 ...

  10. oracle入坑日记<六>自增列创建和清除(含序列和触发器的基础用法)

    0   前言 用过 SQLserver 和 MySQL 的自增列(auto_increment),然而 Oracle 在建表设置列时却没有自增列. 查阅资料后发现 Oracle 的自增列需要手动编写. ...

随机推荐

  1. 接入B站iframe视频(bilibili引用视频)

    感谢 https://blog.csdn.net/xinshou_caizhu/article/details/94028606 我们在查看其它资料的时候,视频总加载失败,后来发现是少了 https: ...

  2. 2022.11.08 NOIP2022 模拟赛五

    「LibreOJ NOIP Round #1」DNA 序列 注意到 \(k=10\),\(|\Sigma|=4\),故本质不同的子串个数只有 \(4^{10}\) 种,可以直接压位存下来. 时间复杂度 ...

  3. 2022-04-13内部群每日三题-清辉PMP

    1项目经理正在执行一个资源有限,期限严格的引人注目的项目.该项目目前落后于进度,对资源平衡的审查显示,一些资源被过度分配.请问项目经理应该怎么办? A.重新分配来自另一个项目不必要的资源 B.为延迟的 ...

  4. 在linux环境中安装node,npm,express

    linux安装node 连接运程命令: 进入usr/local 文件夹 cd /usr/local 1.下载 wget https://nodejs.org/dist/v14.17.6/node-v1 ...

  5. 解决PageHelper分页不正常,pages始终等于1,total 始终等于pageSize的问题

    问题 pages始终等于1,total 始终等于pageSize 原因 原因是我在查询到list数据之后,对list做了操作,导致分页不正常 // 这是service层的类 public PageIn ...

  6. 2.对于script标签的放置位置

    使用<script>元素有两种方式 一种是在页面嵌入JavaScript代码 ,一种就是包含外部JavaScript文件 包含在<script>标签内部的JavaScript代 ...

  7. Delphi实现大写字母键打开提示

    uses XPMan 编辑框的passwordChar属性设置成 *

  8. 物联网之Wifi协议

    今天来重点介绍一下WIfi协议,咱们用的其实已经很多了. 主要内容: ⼀.基本概述 ⼆.实践基础 三.⼀些原理 ⼀.基本概述 ============================ 1.有线和⽆线⽹ ...

  9. flask、element、vue项目实战:搭建一个加密excel数据的网站

    文章目录 一.前端 1.1 上传文件 1.2 数据表格 1.3 加密选项 1.4 加密数据 1.5 下载按钮 二.后端 2.1 .upload 文件上传 2.2 table 数据表格接口 2.3 en ...

  10. PulADC驱动设计

    Ref大电容10uF,X5R或钽电容,不建议NPO 参考信号的驱动(高能输出基准源,或者运放),低阻抗,大SlowRate,小建立时间:: ADA4841-1, AD8021, ADA4899-1, ...