在 Python 中,可以使用 threading 模块中的 Condition 类来创建条件变量,实现线程同步。具体步骤如下:
- 获取底层锁:使用
condition.acquire()
方法获取底层锁。此方法将调用底层锁上对应的acquire()
方法。 - 等待直到获取通知或出现超时:使用
condition.wait()
方法等待直到获取通知或出现超时为止。此方法在调用线程已经获取锁之后调用。调用时,将释放底层锁,而且线程将进入睡眠状态,直到另一个线程在条件变量上执行notify()
或notify_all()
方法将其唤醒为止。在线程被唤醒后,线程将重新获取锁,方法也会返回。timeout
是浮点数,单位为秒。 - 释放底层锁:使用
condition.release()
方法释放底层锁。此方法将调用底层锁上对应的release()
方法。 - 通知其他线程:在满足条件时,调用
condition.notify()
或condition.notify_all()
方法通知其他处于阻塞状态的线程。