# 信号量可能在不同领域对应不同的知识点
'''
互斥锁:代表一个坑位
信号量:代表一个公共厕所,有多个坑位
'''
from threading import Semaphore,Thread
import time
import random
sm = Semaphore(4) # 制造一个有五个坑位的厕所
def task(name):
sm.acquire()
print('%s 抢到了坑位' % name)
time.sleep(random.randint(1, 3))
sm.release()
if __name__ == '__main__':
for i in range(20):
t = Thread(target=task, args=(i,))
t.start()