信号量
程序员文章站
2022-07-09 18:50:55
信号量用来控制线程并发数的,BoundedSemaphore或Semaphore管理一个内置的计数 器,每当调用acquire()时-1,调用release()时+1。计数器不能小于0,当计数器为 0时,acquire()将阻塞线程至同步锁定状态,直到其他线程调用release()。(类似于停车位的... ......
1 import threading,time 2 class mythread(threading.thread): 3 def run(self): 4 if semaphore.acquire(): 5 print(self.name) 6 time.sleep(5) 7 semaphore.release() 8 if __name__=="__main__": 9 semaphore=threading.semaphore(5) 10 thrs=[] 11 for i in range(100): 12 thrs.append(mythread()) 13 for t in thrs: 14 t.start()