1、支持复杂线程同步的Python提供的Condition对象。
2、Condition被称为条件变量,除了提供类似Lock的acquire和release方法外,还提供wait和notify方法。线程首先是acquire条件变量,然后判断一些条件。
实例
importthreading,time classHider(threading.Thread): def__init__(self,cond,name): super(Hider,self).__init__() self.cond=cond self.name=name defrun(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+':我赢了')#h classSeeker(threading.Thread): def__init__(self,cond,name): super(Seeker,self).__init__() self.cond=cond self.name=name defrun(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学习指导:python基础教程
本文教程操作环境:windows7系统Python 3.9.1,DELL G3电脑。