我们知道,在 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(