python 异步编程

异步的时间等待

asyncio.sleep() 和 time.sleep() 是在不同上下文中使用的两个不同的睡眠函数。

time.sleep() 是 Python 标准库中的函数,用于在同步代码中暂停执行一段时间。当调用 time.sleep() 函数时,当前线程会被阻塞,无法执行其他任务,直到指定的睡眠时间过去。

示例使用 time.sleep() 函数的代码片段:

import time

print("Start")
time.sleep(2)  # 暂停 2 秒
print("End")

asyncio.sleep() 是在异步代码中使用的函数,用于在协程中暂停执行一段时间。当调用 asyncio.sleep() 函数时,协程会暂时挂起,事件循环可以继续处理其他协程,同时等待指定的睡眠时间过去后,再恢复执行该协程。

示例使用 asyncio.sleep() 函数的代码片段:

import asyncio

async def my_coroutine():
    print("Start")
    await asyncio.sleep(2)  # 暂停 2 秒
    print("End")

asyncio.run(my_coroutine())

在异步代码中,可以使用 await 关键字来暂停协程的执行,其中 await asyncio.sleep() 用于模拟等待一段时间。在这段时间内,事件循环仍然可以处理其他协程或任务。

综上所述,主要区别在于 time.sleep() 阻塞整个线程的执行,而 asyncio.sleep() 只是暂停当前协程的执行,并允许事件循环去处理其他协程。因此,asyncio.sleep() 更适用于异步代码的场景。

协程中的异常处理

假如不做异常捕捉,是不能自己打印出错误的,很可能就是在中途退出了

所以一定要在其中捕捉一些异常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值