91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python線程中的semaphore信號量介紹

發布時間:2020-08-26 16:59:08 來源:億速云 閱讀:173 作者:Leah 欄目:編程語言

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

python中的線程之semaphore信號量

semaphore是一個內置的計數器,每當調用acquire()時,內置計數器-1;每當調用release()時,內置計數器+1。

計數器不能小于0,當計數器為0時,acquire()將阻塞線程直到其他線程調用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()  #啟動線程

執行結果:

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

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

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

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

代碼如下:

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

執行結果:

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

看完上述內容,你們掌握python線程中的semaphore信號量介紹的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

龙南县| 长宁县| 仪征市| 泽普县| 浑源县| 汤原县| 南开区| 宁晋县| 玛曲县| 黔江区| 连江县| 南涧| 安仁县| 兴山县| 江城| 濮阳市| 彝良县| 浦东新区| 广南县| 丰镇市| 剑河县| 玉田县| 广饶县| 蓬溪县| 关岭| 正定县| 大同市| 太保市| 区。| 温泉县| 衡山县| 定陶县| 收藏| 勐海县| 宁波市| 寿阳县| 德令哈市| 武隆县| 辽中县| 岚皋县| 巢湖市|