python培训之condition条件变量的作用

发布时间:2022-12-05 09:44:36 人气:75 作者:多测师

  1、Python提供的Condition对象支持复杂的线程同步。

  2、Condition被称为条件变量,除了提供类似Lock的acquire和release方法外,还提供wait和notify方法。线程先acquire条件变量,然后判断一些条件。

  实例

  import threading, time

  class 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

python培训之condition条件变量的作用

  print(self.name + ': 我找到你了 ~_~')

  # self.cond.notify()

  self.cond.release()

  #g

  print(self.name + ': 我赢了') #h

  class 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相关知识,请关注多测师。https://www.e70w.com/xwzx/


返回列表
在线客服
联系方式

热线电话

17727591462

上班时间

周一到周五

二维码
线