Python 信号量对象

发布时间:2022-04-28 09:39:17 人气:24 作者:多测师

  和锁机制一样,信号量机制也是一种实现线程同步的机制,不过它比锁多了一个计数器,这个计数器主要用来计算当前剩余的锁的数量。

  threading.Semaphore(value=1)

  信号量实现类,可选参数 value 赋予内部计数器初始值,默认值为 1 。它具有如下方法:

  acquire(blocking=True, timeout=None):获取一个信号量,参数 blocking 用来设置是否阻塞,timeout 用来设置阻塞时间。

  release():释放一个信号量,将内部计数器的值增加1。

  import threading#

Python 信号量对象

  创建信号量对象

  s = threading.Semaphore(10)

  a = 5

  def oper(b):

  # 获取信号量

  s.acquire()

  global a

  a = a - b

  a = a + b

  # 释放信号量

  s.release()

  def target(b):

  for i in range(100000):

  oper(b)

  if __name__ == '__main__':

  m = 5

  while m > 0:

  t1 = threading.Thread(target=target, args=(1,))

  t2 = threading.Thread(target=target, args=(2,))

  t1.start()

  t2.start()

  t1.join()

  t2.join()

  print(a)

  m = m - 1

  以上内容为大家介绍了Python 信号量对象,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注多测师。https://www.e70w.com/xwzx/


上一篇:Python 条件对象
下一篇:Python 事件对象
返回列表
在线客服
联系方式

热线电话

17727591462

上班时间

周一到周五

二维码
线