Python信号量

 

信号量相当于一个锁锁着的房间里的多个床位,同一时间可以有多个线程获得信号量,而锁则只能被一个线程获得。

import threading
import time

semaphore = threading.Semaphore(3)

def func():
    if semaphore.acquire():   # acquire和release方法同锁的方法,不同在于可以控制多个线程得到该semaphore
        print (threading.currentThread().getName() + ' get semaphore')
        time.sleep(1)
        semaphore.release()

for i in range(10):
  t1 = threading.Thread(target=func)
  t1.start()

 

posted @ 2018-03-09 16:25  Claire_xu  阅读(146)  评论(0编辑  收藏  举报