pythoncondition条件变量的作用
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相关知识,请关注IT培训机构:千锋教育。
相关推荐HOT
更多>>python中ndarray与list转换的方法
python中ndarray与list转换的方法在python数据类型中,list元素可以任意类型组合,而ndarray元素类型必须相同,但是ndarray可以更方便的对多维...详情>>
2023-11-10 08:51:14python中OrdereDict如何使用?
python中OrdereDict如何使用?我们在对数据进行处理时,如果能够使它们保存顺序的排序,那么用起来会非常的便利。不过字典本身就是没有顺序的,...详情>>
2023-11-10 07:05:00python中如何使用scipy.fftpack模块计算快速傅里叶变换?
python中如何使用scipy.fftpack模块计算快速傅里叶变换?在编程中,快速傅里叶变换是工程中非常有价值的一类算法,它可以将时域和频域的信号相互...详情>>
2023-11-10 05:50:23zip()函数如何在python中遍历多个列表?
zip()函数如何在python中遍历多个列表?下面我们就python中zip的说明、语法、使用注意点进行讲解,然后带来遍历多个列表的实例。1、说明zip()函...详情>>
2023-11-10 05:38:33热门推荐
python concat函数有何用法?
沸python里函数装饰器怎么使用?
热如何实现python中的continue语句?
热python中的冒泡排序是什么?
新python中str函数是什么
如何使用python实现项目进度显示?
python中ndarray与list转换的方法
python复制文件的方法整理
Python中numpy数组如何添加元素
python有几种可视化图形库?
python中xlwings是什么?
python上下文管理器的基本介绍
Python自动化测试基础必备知识点一
python中OrdereDict如何使用?