Semaphore对象内部管理一个计数器,该计数器由每个acquire()调用递减,并由每个release()调用递增。计数器永远不会低于零,当acquire()发现计数器为零时,线程阻塞,等待其他线程调用release()=============控制并发数量=============import threadingimport timeclass Chi(threading.Thread): def __init__(self,sem,i): super().__init__() self.sem = sem self.i = i def run(self): time.sleep(2) print('{}处理中。。。'.format(self.i)) self.sem.release()class Zuo(threading.Thread): def __init__(self,chi_sem): super().__init__() self.chi_sem = chi_sem def run(self): for i in range(100): self.chi_sem.acquire() chi_thread = Chi(self.chi_sem,i) chi_thread.start()sem = threading.Semaphore(6)a = Zuo(sem)a.start()