信号量

# 信号量可能在不同领域对应不同的知识点
'''
互斥锁:代表一个坑位
信号量:代表一个公共厕所,有多个坑位
'''
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()

 

posted @ 2019-08-14 17:17  Nmdlao  阅读(108)  评论(0编辑  收藏  举报