1. 程式人生 > >信號量 也是同步鎖,可用來控制線程的並發數

信號量 也是同步鎖,可用來控制線程的並發數

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()

信號量 也是同步鎖,可用來控制線程的並發數