<abbr id="ciwa6"><option id="ciwa6"></option></abbr>
  • <sup id="ciwa6"><kbd id="ciwa6"></kbd></sup>
    <small id="ciwa6"></small>
  • 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

    400-811-9990
    手機(jī)站
    千鋒教育

    千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

    千鋒教育

    掃一掃進(jìn)入千鋒手機(jī)站

    領(lǐng)取全套視頻
    千鋒教育

    關(guān)注千鋒學(xué)習(xí)站小程序
    隨時隨地免費學(xué)習(xí)課程

    上海
    • 北京
    • 鄭州
    • 武漢
    • 成都
    • 西安
    • 沈陽
    • 廣州
    • 南京
    • 深圳
    • 大連
    • 青島
    • 杭州
    • 重慶
    當(dāng)前位置:成都千鋒IT培訓(xùn)  >  技術(shù)干貨  >  Python 信號量對象

    Python 信號量對象

    來源:千鋒教育
    發(fā)布人:xqq
    時間: 2023-11-06 17:19:11

    和鎖機(jī)制一樣,信號量機(jī)制也是一種實現(xiàn)線程同步的機(jī)制,不過它比鎖多了一個計數(shù)器,這個計數(shù)器主要用來計算當(dāng)前剩余的鎖的數(shù)量。

    threading.Semaphore(value=1)

    信號量實現(xiàn)類,可選參數(shù)value賦予內(nèi)部計數(shù)器初始值,默認(rèn)值為1。它具有如下方法:

    acquire(blocking=True,timeout=None):獲取一個信號量,參數(shù)blocking用來設(shè)置是否阻塞,timeout用來設(shè)置阻塞時間。

    release():釋放一個信號量,將內(nèi)部計數(shù)器的值增加1。

    importthreading#

    創(chuàng)建信號量對象

    s=threading.Semaphore(10)

    a=5

    defoper(b):

    #獲取信號量

    s.acquire()

    globala

    a=a-b

    a=a+b

    #釋放信號量

    s.release()

    deftarget(b):

    foriinrange(100000):

    oper(b)

    if__name__=='__main__':

    m=5

    whilem>0:

    t1=threading.Thread(target=target,args=(1,))

    t2=threading.Thread(target=target,args=(2,))

    t1.start()

    t2.start()

    t1.join()

    t2.join()

    print(a)

    m=m-1

    以上內(nèi)容為大家介紹了Python信號量對象,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。

    聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。

    猜你喜歡LIKE

    python delattr函數(shù)如何使用?

    2023-11-10

    python time.strptime的格式化

    2023-11-10

    pythonGIL在Python多線程的應(yīng)用

    2023-11-10

    最新文章NEW

    python中pdb模塊怎么用?

    2023-11-10

    Python如何截圖保存?

    2023-11-10

    python?中缺少module怎么辦?

    2023-11-10

    相關(guān)推薦HOT

    更多>>

    快速通道 更多>>

    最新開班信息 更多>>

    網(wǎng)友熱搜 更多>>