python 线程之threading(五)
生活随笔
收集整理的這篇文章主要介紹了
python 线程之threading(五)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在學習了Event和Condition兩個線程同步工具之后還有一個我認為比較雞肋的工具?semaphores?
1. 使用semaphores的使用效果和Condition的notify方法的效果基本相同。每次只能通知一個阻塞線程繼續運行
2.?信號量同步基于內部計數器,每調用一次acquire(),計數器減1;每調用一次release(),計數器加1.當計數器為0時,acquire()調用被阻塞
1 import threading 2 import time 3 4 def countdown(n, sema): 5 while n > 0: 6 n -= 1 7 sema.acquire() 8 print('current countdown:',n) 9 10 11 def countup(n, sema): 12 while n < 100: 13 n += 1 14 sema.acquire() 15 print('current countup:',n) 16 17 sema = threading.Semaphore() 18 threading.Thread(target=countdown,args=(100, sema)).start() 19 threading.Thread(target=countup,args=(0, sema)).start() 20 for i in range(100): 21 sema.release() 22 time.sleep(3)?
轉載于:https://www.cnblogs.com/someoneHan/p/6218040.html
總結
以上是生活随笔為你收集整理的python 线程之threading(五)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 模块导入
- 下一篇: SQL 隐藏手机号中间四位