信号量
某一段代码同一时间只能被n个进程执行,通过一个信号来控制多个进程同时执行或者阻塞。
Semaphore 管理一个内置的计数器,
每当调用acquire()时内置计数器-1;
调用release() 时内置计数器+1;
计数器不能小于0;当计数器为0时,acquire()将阻塞线程直到其他线程调用release()。
from threading import Thread
from threading import Semaphore
import time
def func(sem):
sem.acquire()
print('func start...')
time.sleep(1)
print('func end...')
sem.release()
if __name__ == '__main__':
sem = Semaphore(2)
t_lst = []
for i in range(