真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python線程中的semaphore信號量介紹

python線程中的semaphore信號量介紹?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

創(chuàng)新互聯(lián)專注于青岡網(wǎng)站建設服務及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供青岡營銷型網(wǎng)站建設,青岡網(wǎng)站制作、青岡網(wǎng)頁設計、青岡網(wǎng)站官網(wǎng)定制、小程序定制開發(fā)服務,打造青岡網(wǎng)絡公司原創(chuàng)品牌,更為您提供青岡網(wǎng)站排名全網(wǎng)營銷落地服務。

python中的線程之semaphore信號量

semaphore是一個內(nèi)置的計數(shù)器,每當調(diào)用acquire()時,內(nèi)置計數(shù)器-1;每當調(diào)用release()時,內(nèi)置計數(shù)器+1。

計數(shù)器不能小于0,當計數(shù)器為0時,acquire()將阻塞線程直到其他線程調(diào)用release()。

來看下面的代碼:

import time
import threading
def foo():
    time.sleep(2)   #程序休息2秒
    print("ok",time.ctime())
for i in range(20):
    t1=threading.Thread(target=foo,args=()) #實例化一個線程
    t1.start()  #啟動線程

執(zhí)行結(jié)果:

ok Tue Jul 18 20:05:58 2017
ok Tue Jul 18 20:05:58 2017
ok Tue Jul 18 20:05:58 2017
ok Tue Jul 18 20:05:58 2017
ok Tue Jul 18 20:05:58 2017
ok Tue Jul 18 20:05:58 2017
ok Tue Jul 18 20:05:58 2017
ok Tue Jul 18 20:05:58 2017
ok Tue Jul 18 20:05:58 2017
ok Tue Jul 18 20:05:58 2017
ok Tue Jul 18 20:05:58 2017
ok Tue Jul 18 20:05:58 2017
ok Tue Jul 18 20:05:58 2017
ok Tue Jul 18 20:05:58 2017
ok Tue Jul 18 20:05:58 2017
ok Tue Jul 18 20:05:58 2017
ok Tue Jul 18 20:05:58 2017
ok Tue Jul 18 20:05:58 2017
ok Tue Jul 18 20:05:58 2017
ok Tue Jul 18 20:05:58 2017

可以看到,程序會在很短的時間內(nèi)生成20個線程來打印一句話。

如果在主機執(zhí)行IO密集型任務的時候再執(zhí)行這種類型的程序時,計算機就有很大可能會宕機。

這時候就可以為這段程序添加一個計數(shù)器功能,來限制一個時間點內(nèi)的線程數(shù)量。

代碼如下:

import time
import threading
s1=threading.Semaphore(5)   #添加一個計數(shù)器
def foo():
    s1.acquire()    #計數(shù)器獲得鎖
    time.sleep(2)   #程序休眠2秒
    print("ok",time.ctime())
    s1.release()    #計數(shù)器釋放鎖
for i in range(20):
    t1=threading.Thread(target=foo,args=()) #創(chuàng)建線程
    t1.start()  #啟動線程

執(zhí)行結(jié)果:

ok Tue Jul 18 20:04:38 2017
ok Tue Jul 18 20:04:38 2017
ok Tue Jul 18 20:04:38 2017
ok Tue Jul 18 20:04:38 2017
ok Tue Jul 18 20:04:38 2017
ok Tue Jul 18 20:04:40 2017
ok Tue Jul 18 20:04:40 2017
ok Tue Jul 18 20:04:40 2017
ok Tue Jul 18 20:04:40 2017
ok Tue Jul 18 20:04:40 2017
ok Tue Jul 18 20:04:42 2017
ok Tue Jul 18 20:04:42 2017
ok Tue Jul 18 20:04:42 2017
ok Tue Jul 18 20:04:42 2017
ok Tue Jul 18 20:04:42 2017
ok Tue Jul 18 20:04:44 2017
ok Tue Jul 18 20:04:44 2017
ok Tue Jul 18 20:04:44 2017
ok Tue Jul 18 20:04:44 2017
ok Tue Jul 18 20:04:44 2017

看完上述內(nèi)容,你們掌握python線程中的semaphore信號量介紹的方法了嗎?如果還想學到更多技能或想了解更多相關內(nèi)容,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


文章題目:python線程中的semaphore信號量介紹
地址分享:http://weahome.cn/article/pdsepd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部