python中condition条件变量有什么作用
发表于:2024-11-23 作者:热门IT资讯网编辑
编辑最后更新 2024年11月23日,这篇文章主要讲解了"python中condition条件变量有什么作用",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"python中condition条
这篇文章主要讲解了"python中condition条件变量有什么作用",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"python中condition条件变量有什么作用"吧!
1、Python提供的Condition对象支持复杂的线程同步。
2、Condition被称为条件变量,除了提供类似Lock的acquire和release方法外,还提供wait和notify方法。线程先acquire条件变量,然后判断一些条件。
实例
import threading, timeclass Hider(threading.Thread): def __init__(self, cond, name): super(Hider, self).__init__() self.cond = cond self.name = name def run(self): time.sleep(1) #确保先运行Seeker中的方法 self.cond.acquire() #b print(self.name + ': 我已经把眼睛蒙上了') self.cond.notify() self.cond.wait() #c #f print(self.name + ': 我找到你了 ~_~') # self.cond.notify() self.cond.release() #g print(self.name + ': 我赢了') #hclass Seeker(threading.Thread): def __init__(self, cond, name): super(Seeker, self).__init__() self.cond = cond self.name = name def run(self): self.cond.acquire() self.cond.wait() #a #释放对琐的占用,同时线程挂起在这里,直到被notify并重新占有琐。 #d print(self.name + ': 我已经藏好了,你快来找我吧') self.cond.notify() self.cond.wait() #e #h self.cond.release() print(self.name + ': 被你找到了,哎~~~')cond = threading.Condition()seeker = Seeker(cond, 'seeker')hider = Hider(cond, 'hider')seeker.start()hider.start()
感谢各位的阅读,以上就是"python中condition条件变量有什么作用"的内容了,经过本文的学习后,相信大家对python中condition条件变量有什么作用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!