正确理解协程

简介: 正确理解协程

import asyncio

定义一个异步函数(协程)

async def say_after(delay, what):

# 等待指定的时间
await asyncio.sleep(delay)
# 打印消息
print(what)

定义另一个异步函数

async def main():

# 同时启动两个协程,并等待这2个协程结束
await say_after(1, 'hello')
await say_after(2, 'world')

运行主函数

asyncio.run(main())
正确理解

当执行这句 await say_after(1, 'hello') 将会交出程序控制权,等待 say_after(1, 'hello')执行完,当然系统也有机会执行其他协程(看系统调度)。

await 后面必须跟协程,而不是普通函数。

相关文章
|
设计模式 中间件 程序员
【C/C++ 奇异递归模板模式 】C++中CRTP模式(Curiously Recurring Template Pattern)的艺术和科学
【C/C++ 奇异递归模板模式 】C++中CRTP模式(Curiously Recurring Template Pattern)的艺术和科学
951 3
|
弹性计算 Kubernetes Perl
k8s 设置pod 的cpu 和内存
在 Kubernetes (k8s) 中,设置 Pod 的 CPU 和内存资源限制和请求是非常重要的,因为这有助于确保集群资源的合理分配和有效利用。你可以通过定义 Pod 的 `resources` 字段来设置这些限制。 以下是一个示例 YAML 文件,展示了如何为一个 Pod 设置 CPU 和内存资源请求(requests)和限制(limits): ```yaml apiVersion: v1 kind: Pod metadata: name: example-pod spec: containers: - name: example-container image:
1592 2
|
机器学习/深度学习 PyTorch 算法框架/工具
PyTorch代码实现神经网络
这段代码示例展示了如何在PyTorch中构建一个基础的卷积神经网络(CNN)。该网络包括两个卷积层,分别用于提取图像特征,每个卷积层后跟一个池化层以降低空间维度;之后是三个全连接层,用于分类输出。此结构适用于图像识别任务,并可根据具体应用调整参数与层数。
308 9
|
存储 JavaScript 前端开发
深入探索 Vue.js:构建现代 Web 应用的利器
【10月更文挑战第11天】深入探索 Vue.js:构建现代 Web 应用的利器
146 1
|
Ubuntu 应用服务中间件 网络安全
Tomcat 下载
【7月更文挑战第16天】
791 4
|
Linux 开发工具
linux中出现不在 sudoers 文件中。此事将被报告的解决方法
linux中出现不在 sudoers 文件中。此事将被报告的解决方法
2530 0
|
Unix Linux API
Linux文件描述符和文件指针互转
文件描述符在形式上是一个非负整数。实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。在程序设计中,一些涉及底层的程序编写往往会围绕着文件描述符展开。但是文件描述符这一概念往往只适用于UNIX、Linux这样的操作系统。FILE *指针变量标识符;其中FILE应为大写,它实际上是由系统定义的一个结构,该结构中含有文件名、文件状态和文件当前位置等信息。在编写源程序时不必关心FILE结构的细节。
193 0
|
消息中间件 人工智能 安全
一款 IntelliJ IDEA 神级插件,由 ChatGPT 团队开发,堪称辅助神器!
一款 IntelliJ IDEA 神级插件,由 ChatGPT 团队开发,堪称辅助神器!
|
Web App开发 前端开发
Chrome操作指南——入门篇(十二)color picker(颜色选择器)
Chrome操作指南——入门篇(十二)color picker(颜色选择器)
1571 0
Chrome操作指南——入门篇(十二)color picker(颜色选择器)
|
IDE Java 应用服务中间件
Java WebService如何生成PDF文件
在Web应用开发中,生成PDF文件是一项非常常见的需求。本文将介绍如何使用Java WebService来生成PDF文件。
220 0