python Task在协程调用实例讲解
作者:小妮浅浅 发布时间:2021-06-28 21:39:32
标签:python,Task,协程调用
1、说明
Tasks用于并发调度协程,通过asyncio.create_task(协程对象)创建Task对象,使协程能够加入事件循环,等待调度执行。除使用asyncio.create_task()函数外,还可使用低级loop.create_task()或ensure_future()函数。推荐使用手动实例Task对象。
2、使用注意
Python3.7中添加到asyncio.create_task函数。在Python3.7之前,可以使用低级asyncio.ensure_future函数。
3、实例
import asyncio
async def func():
print(1)
await asyncio.sleep(2)
print(2)
return "返回值"
async def main():
print("main开始")
# 创建协程,将协程封装到一个Task对象中并立即添加到事件循环的任务列表中,等待事件循环去执行(默认是就绪状态)。
task1 = asyncio.create_task(func())
# 创建协程,将协程封装到一个Task对象中并立即添加到事件循环的任务列表中,等待事件循环去执行(默认是就绪状态)。
task2 = asyncio.create_task(func())
print("main结束")
# 当执行某协程遇到IO操作时,会自动化切换执行其他任务。
# 此处的await是等待相对应的协程全都执行完毕并获取结果
ret1 = await task1
ret2 = await task2
print(ret1, ret2)
asyncio.run(main())
知识点扩展:
python asyncio 协程调用task步骤
import asyncio
async def compute(x, y):
print("Compute %s + %s ..." % (x, y))
await asyncio.sleep(1.0)
return x + y
async def print_sum(x, y):
result = await compute(x, y)
print("%s + %s = %s" % (x, y, result))
loop = asyncio.get_event_loop()
loop.run_until_complete(print_sum(1, 2))
loop.close()
来源:https://www.py.cn/jishu/jichu/29985.html


猜你喜欢
- 概述:CentOS 6.4下通过yum安装的MySQL是5.1版的,比较老,所以就想通过源代码安装高版本的5.6.14。正文:一、卸载旧版本
- 有这样一个经历,服务器挂掉了,请工程师维护,为了安全,工程师进行核心操作时,直接关掉显示器进行操作,完成后,再打开显示器,进行收尾工作...
- 编码问题因为涉及到中文,所以必然地涉及到了编码的问题,这一次借这个机会算是彻底搞清楚了。问题要从文字的编码讲起。原本的英文编码只有0~255
- 前言在日常中有时需将 html 文件转换为 pdf、word 文件。网上免费的大多数不支持多个文件转换的情况,而且在转换几个后就开始收费了。
- python中xmltodict使用xml转换成OrderedDict代码 :import xmltodictfrom pprin
- 正题: 1.1 javascript的灵活性 面向对象对象的Javascript编程模式:1、可以保存状态 2、具有对象内部才能调用的方法
- 随着短视频的大火,不仅可以给人们带来娱乐,还有热点新闻时事以及各种知识,刷短视频也逐渐成为了日常生活的一部分。本文以一个简单的小例子,简述如
- 目标能够使用mybatis的标签实现动态SQL拼接分析我们在前边的学习过程中,使用的SQL语句都非常简单。而在实际业务开发中,我们的SQL语
- 本文实例为大家分享了python人脸识别程序,大家可进行测试#coding:utf-8 import cv2 import sys from
- 这个url的正则表达式判断的js!是比较全面的。它验证的情况包括!IP,域名(domain),ftp,二级域名,域名中的文件,域名加上端口!
- pytorch构建双模型第一部分:构建"se_resnet152","DPN92()"双模型impo
- 具体的upgrade脚本如下:动态删除索引DROP PROCEDURE IF EXISTS UPGRADE;DELIMITER $$CREA
- 大家好,今天才发现很多学习Flask的小伙伴都有这么一个问题,清理缓存好麻烦啊,今天就教大家怎么解决。大家在使用Flask静态文件的时候,每
- 一、安装pip2pi工具:pip install pip2pi或:git clone https://github.com/wolever/
- yum or rpm?yum安装方式很方便,但是下载mysql的时候从官网下载,速度较慢。rpm安装方式可以从国内镜像下载mysql的rpm
- JS继承 JavaScript中没有类的概念,与类相关的继承的概念更是无从谈起,但是我们可以通过特殊的语法来 模拟面向对象语言中的继承。 在
- 支持lrc歌词,IE only 代码未加密且有详细注释,希望对做音乐页面的朋友有帮助。 如果大家还有什么好多播放器,告诉我,我好参
- 1. copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象。2. copy.deepcopy 深拷贝 拷贝对象及其子对象一个
- 比如:Set Connobject=nothing nothing如同英文单词字面意思,没有,没有那个,没有这个,没有东西 Set Conn
- Python 3 的可迭代解包在 PEP 3132 - Extended Iterable Unpacking 里面描述了一种对可迭代对象的