Python 的 asyncio
是一个用于编写单线程并发代码的库,它使用 async
/await
语法来创建和管理协程。asyncio
提供了事件循环、协程、任务和异步I/O的概念,使得I/O密集型和高级别的结构化网络代码可以并发运行,而不会牺牲性能。
它允许在单线程内高效地执行并发操作,特别适用于处理大量的网络连接和I/O操作,如Web服务器、客户端、网关等。
asyncio
通过非阻塞I/O和异步编程,提高了程序的响应速度和吞吐量,是Python异步编程的核心库。
import time
import asyncio
# 定义异步函数
async def hello():
asyncio.sleep(1)
print(time.time())
def run():
for i in range(5):
loop.run_until_complete(hello())
loop = asyncio.get_event_loop()
if __name__ =='__main__':
run()
1527595104.8338501
1527595104.8338501
1527595104.8338501
1527595104.8338501
1527595104.8338501
async def 用来定义异步函数,其内部有异步操作。
每个线程有一个事件循环,主线程调用asyncio.get_event_loop()时会创建事件循环
你需要把异步的任务丢给这个循环的run_until_complete()方法,事件循环会安排协同程序的执行。