asyncio基础用法
说明:需要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基础用法的更多相关文章
- asyncio 基础用法
asyncio 基础用法 python也是在python 3.4中引入了协程的概念.也通过这次整理更加深刻理解这个模块的使用 asyncio 是干什么的? asyncio是Python 3.4版本引入 ...
- PropertyGrid控件由浅入深(二):基础用法
目录 PropertyGrid控件由浅入深(一):文章大纲 PropertyGrid控件由浅入深(二):基础用法 控件的外观构成 控件的外观构成如下图所示: PropertyGrid控件包含以下几个要 ...
- logstash安装与基础用法
若是搭建elk,建议先安装好elasticsearch 来自官网,版本为2.3 wget -c https://download.elastic.co/logstash/logstash/packag ...
- elasticsearch安装与基础用法
来自官网,版本为2.3 注意elasticsearch依赖jdk,2.3依赖jdk7 下载rpm包并安装 wget -c https://download.elastic.co/elasticsear ...
- BigDecimal最基础用法
BigDecimal最基础用法 用字符串生成的BigDecimal是不会丢精度的. 简单除法. public class DemoBigDecimal { public static void mai ...
- Vue组件基础用法
前面的话 组件(Component)是Vue.js最强大的功能之一.组件可以扩展HTML元素,封装可重用的代码.根据项目需求,抽象出一些组件,每个组件里包含了展现.功能和样式.每个页面,根据自己所需, ...
- Smarty基础用法
一.Smarty基础用法: 1.基础用法如下 include './smarty/Smarty.class.php';//引入smarty类 $smarty = new Smarty();//实例化s ...
- 前端自动化测试神器-Katalon的基础用法
前言 最近由于在工作中需要通过Web端的功能进行一次大批量的操作,数据量大概在5000左右,如果手动处理, 完成一条数据的操作用时在20秒左右的话,大概需要4-5个人/天的工作量(假设一天8小时的工作 ...
- Bootstrap fileinput:文件上传插件的基础用法
官网地址:http://plugins.krajee.com/ 官网提供的样例:http://plugins.krajee.com/file-input/demo 基础用法一 导入核心CSS及JS文件 ...
- oracle入坑日记<六>自增列创建和清除(含序列和触发器的基础用法)
0 前言 用过 SQLserver 和 MySQL 的自增列(auto_increment),然而 Oracle 在建表设置列时却没有自增列. 查阅资料后发现 Oracle 的自增列需要手动编写. ...
随机推荐
- 2170. 使数组变成交替数组的最少操作数 (Medium)
问题描述 2170. 使数组变成交替数组的最少操作数 (Medium) 给你一个下标从 0 开始的数组 nums ,该数组由 n 个正整数组成. 如果满足下述条件,则数组 nums 是一个 交替数组 ...
- python max()用法
起因是看到一道面试题 "统计字符串中出现次数最多的字符,并返回出现次数" 问题很简单,刚开始没思路,只想到了循环统计,但是觉得太蠢了,直到我发现了max()的key用法,果然还是我 ...
- 使用CefSharp获取A标签中的内容
js = @"(function (){ return document.querySelectorAll('a')[0].innerHTML})(); "; chromeBrow ...
- 拉取docker容器后启动容器的脚本
我暂且不论如何拉取docker镜像.我使用sudo docker images查看拉取的镜像. 譬如我拉取nvidia的pytorch镜像后,想要创建一个实例或启动某实例,可使用如下脚本(如果本地没有 ...
- PostScript语言教程(四、程序变量使用)
4.1.变量定义 POSTSCRIPT 变量 变量的定义是将比那两名和值用def进行关联类似 /ppi 75 def %将ppi定义为75 /ppi ppi 1 add def %将ppi + 1的值 ...
- vs2015当前不会命中断点,还没有为该文档
经百度,需在项目>项目属性>生成>优化代码的勾去掉>保存>再次F11调试可解决
- IDEA的主题插件
Xcode-Dark Theme
- PHP Redis - Set(集合)
Redis 的 set 无序集合,与 list 类似,特殊之处在于 set 可以自动排重,不会出现重复数据 集合中最大的成员数为 232-1 (4294967295, 每个集合可存储40多亿个成员). ...
- vue 项目打包 遇到问题 npm run build 无法打包
npm run build 打包 直接报错!!! 发现package.json中build的打包后边多了一个:prod 因此打包直接使用 npm run build:prod
- C语言——函数
C 语言中的函数定义形式: return_type function_name( parameter list ) //函数头 { //函数体 body of the function } 返回类型: ...