我们知道,在 Python 里面可以使用time.sleep来让代码暂停一段时间,例如:
import time
print('...部分代码...')
time.sleep(5)
print('...剩下的代码...')
程序首先打印出...部分代码...,然后等待5秒钟,再打印出...剩下的代码...。
现在大家想一想,有没有什么办法,在不使用time.sleep的情况下,让程序暂停5秒?
你可能会说,用requests访问一个延迟5秒的网址、或者用递归版算法计算斐波那契数列第36位……这些奇技淫巧。
不过今天我说的,是另外一个东西,threading模块里面的Event。
我们来看看它的用法:
import threading
event = threading.Event()
print('...部分代码...')
event.wait(5)
print('...剩下的代码...')
这样一来,程序首先打印出...部分代码...,然后等待5秒钟,再打印出...剩下的代码...。
功能看起来跟time.sleep没什么区别,那为什么我要特别提到它呢?因为在多线程里面,它比time.sleep更有用。我们来看一个例子:
import threading
class Checker(

本文介绍了Python中除了time.sleep之外的另一种延时方法——threading.Event(). 通过示例展示了threading.Event在多线程场景下如何用于等待任务完成,并且在需要时能立即停止等待,避免不必要的延时。此外,还强调了Event对象在多线程中的优势,以及其C语言实现不受GIL锁影响的特点。
最低0.47元/天 解锁文章
5617

被折叠的 条评论
为什么被折叠?



