信号量 也是同步锁,可用来控制线程的并发数
Posted dangrui0725
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了信号量 也是同步锁,可用来控制线程的并发数相关的知识,希望对你有一定的参考价值。
# 信号量 也是同步锁,可用来控制线程的并发数 import threading, time class MyThread(threading.Thread): def run(self): if semaphore.acquire(): # 同时运行五个线程,acquire()放一个进程进去计数器-1 print(self.name) # 计数器为0时阻塞线程至同步锁定状态,等待release() time.sleep(3) semaphore.release() # release()运行一次计数器+1 if __name__ == ‘__main__‘: semaphore = threading.Semaphore(5) # 设定一个信号量同步锁,每一时刻可并行5个线程 thrs = [] for i in range(100): # 创建100个线程 thrs.append(MyThread()) for t in thrs: # 运行100个线程 t.start()
以上是关于信号量 也是同步锁,可用来控制线程的并发数的主要内容,如果未能解决你的问题,请参考以下文章
并发编程-AQS同步组件之 Semaphore 控制并发线程数的信号量