首页 > 编程语言 >Python高阶---协程并发

Python高阶---协程并发

时间:2024-05-04 14:33:05浏览次数:27  
标签:tasks 协程 Python --- task time wait asyncio

import asyncio
import time

====================================

1.定义协程对象

async def hello(x):
# time.sleep(x) # time.sleep是一个同步操作语句,无法达到异步的结果
print('-222-', x)
await asyncio.sleep(x)
return '等待了{}秒'.format(x)
# return x

if name == 'main':

s_time = time.time()

# 2.创建协程对象
coro1 = hello(1)
coro2 = hello(2)
coro3 = hello(3)

# # 3.获取事件循环对象容器
loop = asyncio.get_event_loop()
# 4.将协程对象转化为task
tasks = [asyncio.ensure_future(coro1),
         asyncio.ensure_future(coro2),
         asyncio.ensure_future(coro3)]   # 建议使用

# 5.将task任务扔进事件循环对象触发
# 将tasks注册到事件循环中
# 两种方法:asyncio.wait, asyncio.gather
# 第一种方法:asyncio.wait
# loop.run_until_complete(asyncio.wait(tasks))       # wait方法只接受列表作为参数
# 第二种方法:asyncio.gather
loop.run_until_complete(asyncio.gather(*tasks))      # gather方法方法接收不定量参数
for task in tasks:
    print('任务返回的结果是:', task.result())         # 获取回调结果

e_time = time.time()
print('总时间:', e_time - s_time)
# =============================================

标签:tasks,协程,Python,---,task,time,wait,asyncio
From: https://www.cnblogs.com/jackchen28/p/18172275

相关文章

  • 拂衣天气(微天气)-序章
    前言天气小程序产生于2022年年初,目的是用于验证自己是否有进入全栈开发(仅前后端)的能力。该项目从2022年1月12号正式启动,于2022年3月19日发布一阶段最终版本(1.1.9),总体耗时2个月零7天。从内容完整度以及界面友好程度来说,我给自己70分。完成内容和风天气API接入,可实现实时天气、......
  • 拂衣天气(微天气)-技术预研
    前言俗话说:磨刀不误砍柴工。我想做一个天气类别的小程序,以此进行全栈开发能力的试炼。我想这会是一个微信小程序、是一个可以正常使用的小程序,以Java进行服务端开发,以Mapbox实现天气数据可视化。但是我是一个后端开发工程师,我不怎么会写页面,我特别的讨厌写CSS。我也没有接触过......
  • 拂衣天气(微天气)-模型设计
    前言这是一个前后端分离的项目,后端使用Java进行开发,而前端通过微信小程序实现。功能结构可从上图得知,部分功能已去除:消息消息推送紧急情况推送用户个人中心模型设计用户信息(UserInfo)idLong主键oidStringOpenIDuidStringUnionIDnameString昵称pho......
  • 拂衣天气(微天气)-开发环境准备
    前言本文用于说明本次开发所使用的环境,以及环境的搭建过程。操作系统Windows10专业版其实我当时使用的操作系统的ArchLinux,开发完成后才又重装回Windows。现在又用回了[email protected]服务端服务端使用Java语言进行开发,项目构建使用Maven(Grad......
  • Java(5)-双亲委派机制
    如何理解双亲委派机制双亲委派机制是Java中类加载器加载类的一种方法,可以想象一个大家庭中的孩子想要一本书来阅读:在这个家庭中,孩子会先向他的父亲(子类加载器)要这本书,如果没有这本书,他的父亲就会去向孩子的祖父(父类加载器)要这本书。这个过程会一直持续,直到到达家族中的最高辈分,......
  • 跟羽夏去实现协程
    写在前面  此系列是本人一个字一个字码出来的,包括示例和实验截图。本人非计算机专业,可能对本教程涉及的事物没有了解的足够深入,如有错误,欢迎批评指正。如有好的建议,欢迎反馈。码字不易,如果本篇文章有帮助你的,如有闲钱,可以打赏支持我的创作。如想转载,请把我的转载信息附在文章......
  • CMakeLists.txt --- 导入接口库(预编译库)
    以接口库的方式导入预编译库cmake_minimum_required(VERSION3.9)project(test)set(CMAKE_BUILD_TYPEDebug)set(CMAKE_C_FLAGS"$ENV{CFLAGS}-O2-Wall-pthread")set(CMAKE_CXX_FLAGS"$ENV{CFLAGS}-O2-Wall-pthread-std=c++11-std=gnu++11")#设置mo......
  • python - Counter简单使用
    统计元素数量,并返回字典,键为元素,值为个数fromcollectionsimportCounterlst=['a','b','c','d','a','b','a','c','c','c']dic=Counter(lst)print(dic)#Counter({'c......
  • Razavi - RF Microelectronics的笔记 - Current-Driven Passive Mixer
    Onpage367,whilediscussingaboutcurrent-drivenpassivemixer,thereisthissaying:theswitchesinFig.6.39(b)alsomixthebasebandwaveformswiththeLO,deliveringtheupconvertedvoltagestonodeA.Iamquiteconfusedonwheredoesthiswave......
  • python教程3.3:字符和编码
    1、二进制计算机只能存储和识别二进制,但是人类常用的字母、数字、汉字怎么用计算机存储和识别呢?人类强行约定一个对应表,把数字、字母和数字进行对应上,这样就可以用二进制表示字母和数字了。2、ASCII编码ASCII是美国于1967年创建,只有127个字母和数字(后面扩展128个,一共255个),用......