信号量

信号量也是一把锁,可以指定信号量为5,对比互斥锁同一时间只能有一个任务抢到锁执行任务

from threading import Thread,Semaphore,current_thread
import time,random
sm=Semaphore(5)
def task():
    # sm.acquire()
    # print("%s in" % current_thread().getName())
    # time.sleep(random.randrange(1,4))
    # sm.release()
    with sm:
        print("%s in" % current_thread().getName())
        time.sleep(random.randrange(1, 4))
if __name__=="__main__":
    for i in range(100):
        t=Thread(target=task)
        t.start()
原文地址:https://www.cnblogs.com/yaya625202/p/9043389.html