信號量 也是同步鎖,可用來控制線程的並發數
阿新 • • 發佈:2018-08-18
main def __name__ app class 同時 lee sel 設定
# 信號量 也是同步鎖,可用來控制線程的並發數 import threading, time class MyThread(threading.Thread): def run(self): if semaphore.acquire(): # 同時運行五個線程,acquire()放一個進程進去計數器-1 print(self.name) # 計數器為0時阻塞線程至同步鎖定狀態,等待release() time.sleep(3) semaphore.release()# release()運行一次計數器+1 if __name__ == ‘__main__‘: semaphore = threading.Semaphore(5) # 設定一個信號量同步鎖,每一時刻可並行5個線程 thrs = [] for i in range(100): # 創建100個線程 thrs.append(MyThread()) for t in thrs: # 運行100個線程 t.start()
信號量 也是同步鎖,可用來控制線程的並發數