python 线程之threading(五)
生活随笔
收集整理的這篇文章主要介紹了
python 线程之threading(五)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
在學(xué)習(xí)了Event和Condition兩個(gè)線程同步工具之后還有一個(gè)我認(rèn)為比較雞肋的工具?semaphores?
1. 使用semaphores的使用效果和Condition的notify方法的效果基本相同。每次只能通知一個(gè)阻塞線程繼續(xù)運(yùn)行
2.?信號(hào)量同步基于內(nèi)部計(jì)數(shù)器,每調(diào)用一次acquire(),計(jì)數(shù)器減1;每調(diào)用一次release(),計(jì)數(shù)器加1.當(dāng)計(jì)數(shù)器為0時(shí),acquire()調(diào)用被阻塞
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)?
轉(zhuǎn)載于:https://www.cnblogs.com/someoneHan/p/6218040.html
總結(jié)
以上是生活随笔為你收集整理的python 线程之threading(五)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 模块导入
- 下一篇: SQL 隐藏手机号中间四位