python:并发编程(十)

前言

本文将和大家一起探讨python的多协程并发编程(上篇),使用内置基本库asyncio来实现并发,先通过官方来简单使用这个模块。先打好基础,能够有个基本的用法与认知,后续文章,我们再进行详细使用。

本文为python并发编程的第十篇,上一篇文章地址如下:

python:并发编程(九)_Lion King的博客-CSDN博客

下一篇文章地址如下:

(暂无)
 

一、快速开始

官方文档:asyncio --- 异步 I/O — Python 3.11.4 文档

1、事件循环

asyncio 提供了事件循环(Event Loop)作为协程的调度器和执行者。事件循环负责处理协程的调度和执行,并处理事件、回调函数等。以下是关于 asyncio 事件循环的一些重要概念和用法:

(1)获取事件循环对象:可以使用 asyncio.get_event_loop() 获取默认的事件循环对象,或者使用 asyncio.new_event_loop() 创建一个新的事件循环对象。

(2)设置默认事件循环:可以使用 asyncio.set_event_loop() 设置默认的事件循环对象。

(3)运行事件循环:可以使用 loop.run_forever() 方法以无限循环的方式运行事件循环,直到调用 loop.stop()

(4)执行协程:可以使用 loop.run_until_complete() 方法执行一个协程或任务,并等待其完成。

(5)停止事件循环:可以使用 loop.stop() 停止事件循环的运行。

(6)调度协程:可以使用 loop.create_task() 方法创建一个任务,并将其添加到事件循环中运行。

(7)定时调度:可以使用 loop.call_later()loop.call_at() 方法在指定的时间点调度回调函数的执行。

(8)异常处理:可以使用 try-except 块来捕获和处理在协程执行过程中抛出的异常。

以下是一个简单的示例代码,演示了如何使用 asyncio 的事件循环:

import asyncio

# 定义一个协程
async def my_coroutine():
    print("Coroutine is running")
    await asyncio.sleep(1)  # 模拟耗时操作
    print("Coroutine is done")

# 创建事件循环
loop = asyncio.get_event_loop()

# 将协程添加到事件循环中
task = loop.create_task(my_coroutine())

# 运行事件循环直到任务完成
loop.run_until_complete(task)

# 关闭事件循环
loop.close()

以上代码创建了一个简单的协程 my_coroutine(),并将其添加到事件循环中运行。loop.run_until_complete(task) 运行事件循环直到任务完成,然后关闭事件循环。

通过使用 asyncio 的事件循环,可以方便地管理和调度协程的执行,实现异步操作和并发编程。

你可能感兴趣的:(python,python)