async await codereasy
时间: 2024-12-28 16:26:29 浏览: 4
### 关于 `async` 和 `await` 的简易代码示例
在现代编程语言中,异步编程模型允许程序执行其他操作而不必等待长时间运行的任务完成。Python 中引入了 `async` 和 `await` 来简化异步代码编写[^2]。
#### 基础概念
- **协程**: 协程是一种特殊的函数,它可以在执行过程中暂停并稍后从中断处继续执行。
- **事件循环**: 这是处理和管理所有注册任务的核心机制;当某个任务准备好时调度该任务。
#### 简单的例子
下面展示了一个非常基础的 Python 异步函数定义方式:
```python
import asyncio
async def main():
print('Hello')
await asyncio.sleep(1) # 模拟耗时IO操作
print('World')
# 启动主函数
if __name__ == '__main__':
asyncio.run(main())
```
这段代码展示了如何创建一个简单的异步函数,并使用 `await` 表达式来挂起当前协程直到另一个协程返回结果。
对于更复杂的场景,比如并发地执行多个异步调用,则可以这样做:
```python
import asyncio
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'))
# Wait until both tasks are completed (should take around 2 seconds.)
await task1
await task2
asyncio.run(main())
```
这里的关键在于理解 `create_task()` 方法用于立即安排后台任务的执行而不会阻塞主线程,之后可以通过 `await` 明确指定何时应该等待这些任务结束。
阅读全文