📅  最后修改于: 2023-12-03 14:46:06.235000             🧑  作者: Mango
在编写程序时,我们可能需要在特定的时间点等待一些事件发生,比如等待用户输入,等待文件读取完毕等等。Python提供了多种方式让程序等待,下面将会介绍其中几种常用的方式。
time.sleep()
可以使程序暂停一段时间后再继续执行。其语法如下:
import time
time.sleep(seconds)
其中 seconds
参数表示要暂停的时间,可以是一个整数或者浮点数。
以下是一个示例:
import time
print("开始执行")
time.sleep(3)
print("3秒后")
执行上述代码后,程序会输出如下结果:
开始执行
(等待3秒)
3秒后
threading.Event()
是 Python 内置的线程同步工具。它可以让一个线程等待另一个线程发出的信号。其语法如下:
import threading
event = threading.Event()
event.wait()
其中 event.wait()
会一直阻塞当前线程,直到其它线程调用 event.set()
方法发出信号。
以下是一个示例:
import threading
def func():
print("线程开始执行")
event.wait()
print("线程被唤醒")
event = threading.Event()
t = threading.Thread(target=func)
t.start()
# 模拟耗时操作
time.sleep(3)
event.set()
执行上述代码后,程序会输出如下结果:
线程开始执行
(等待3秒)
线程被唤醒
在使用 Python 进行异步编程时,可以使用 asyncio.sleep()
让协程等待一段时间后再继续执行。其语法如下:
import asyncio
await asyncio.sleep(seconds)
await
关键字只能在协程中使用。
以下是一个示例:
import asyncio
async def func():
print("协程开始执行")
await asyncio.sleep(3)
print("3秒后")
asyncio.run(func())
执行上述代码后,程序会输出如下结果:
协程开始执行
(等待3秒)
3秒后
本文介绍了 Python 中三种常用的等待方式:time.sleep()
、threading.Event()
和 asyncio.sleep()
。对于不同的应用场景,可以选择不同的方式来让程序等待。
以上为时我所了解到的关于 Python Wait的一些常用方式,作为一名程序员,了解各种等待方式并尝试去编写出合适的代码,是非常有必要的,可以使代码更加的灵活和优化。