为了能到远方,脚下的每一步都不能少.|

lmyyyy

园龄:2年8个月粉丝:7关注:10

10月16日总结

  1. 异步编程概述

异步编程是一种编程范式,用于处理那些需要等待I/O操作完成或者耗时任务的情况。在传统的同步编程中,代码会按照顺序逐行执行,直到遇到一个耗时操作,它会阻塞程序的执行直到操作完成。这种阻塞式的模型在某些场景下效率低下,因为代码在等待操作完成时无法执行其他任务。

异步编程通过使用非阻塞I/O和协程(coroutine)来提高效率。协程是一种特殊的函数,可以在执行过程中暂停和恢复。当一个协程遇到一个耗时操作时,它会暂停自己的执行,让出控制权给其他协程,从而实现并发执行。async/await关键字是Python中处理协程的语法工具
2. async/await关键字
async关键字

async是一个关键字,用于定义一个协程函数。协程函数可以通过使用await关键字来暂停自身的执行,等待其他协程或异步操作完成。

以下是一个简单的示例,展示了如何定义一个协程函数:
1
2
3
4
5
6
7

import asyncio

async def my_coroutine():
print("Coroutine started")
await asyncio.sleep(1)
print("Coroutine resumed")
return "Result"

my_coroutine是一个协程函数。它使用了async关键字进行定义,并包含了一个await语句来暂停执行。
await关键字

await是另一个关键字,用于暂停协程函数的执行,等待另一个协程、异步操作或者Future对象完成。

以下是一个使用await的示例:
1
2
3
4
5
6
7
8
9
10
11
12
13

import asyncio

async def my_coroutine():
print("Coroutine started")
await asyncio.sleep(1)
print("Coroutine resumed")
return "Result"

async def main():
result = await my_coroutine()
print(f"Result: {result}")

asyncio.run(main())

在上面的示例中,main函数是一个协程函数,它使用await关键字来等待my_coroutine协程函数的执行结果。当await语句执行时,main函数会暂停自身的执行,直到my_coroutine协程函数完成并返回结果。

需要注意的是,await关键字只能在协程函数中使用。如果你在普通的同步函数中使用await,会导致语法错误。
3. 异步事件循环

异步编程的核心是事件循环(event loop)。事件循环负责调度和执行协程,确保它们按照正确的顺序执行。

在Python中,可以使用asyncio模块提供的事件循环来创建和管理协程。

以下是一个使用事件循环的示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14

import asyncio

async def my_coroutine():
print("Coroutine started")
await asyncio.sleep(1)
print("Coroutine resumed")
return "Result"

async def main():
result = await my_coroutine()
print(f"Result: {result}")

loop = asyncio.get_event_loop()
loop.run_until_complete(main())

在上面的示例中,asyncio.get_event_loop()用于获取默认的事件循环对象。然后,通过调用run_until_complete方法来运行main协程函数,直到它完成

本文作者:lmyyyy

本文链接:https://www.cnblogs.com/lmyy/p/17786235.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   lmyyyy  阅读(2)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起