Python之多線程。

來源:互聯網
上載者:User

標籤:控制線   hid   訊號   isp   結果   star   其他   port   map   

訊號量

  訊號量用來控制線程並發數的,BoundedSemaphore或Semaphore管理一個內建的計數 器,每當調用acquire()時-1,調用release()時+1。

       計數器不能小於0,當計數器為 0時,acquire()將阻塞線程至同步鎖定狀態,直到其他線程調用release()。(類似於停車位的概念)

       BoundedSemaphore與Semaphore的唯一區別在於前者將在調用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) //計數器為510     thrs=[]11     for i in range(100):12         thrs.append(myThread())13     for t in thrs:14         t.start()15 //執行結果:每五秒列印出5條線程名字
View Code

 

Python之多線程。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.