最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python避免死鎖方法實(shí)例分析

 更新時(shí)間:2015年06月04日 12:43:13   作者:MaxOmnis  
這篇文章主要介紹了python避免死鎖方法,較為詳細(xì)的分析了死鎖的成因與避免形成死鎖的方法,需要的朋友可以參考下

本文實(shí)例講述了python避免死鎖方法。分享給大家供大家參考。具體分析如下:

當(dāng)兩個(gè)或者更多的線程在等待資源的時(shí)候就會(huì)產(chǎn)生死鎖,兩個(gè)線程相互等待。
在本文實(shí)例中 thread1 等待thread2釋放block , thread2等待thtead1釋放ablock,
 
避免死鎖的原則:

1. 一定要以一個(gè)固定的順序來(lái)取得鎖,這個(gè)列子中,意味著首先要取得alock, 然后再去block

2. 一定要按照與取得鎖相反的順序釋放鎖,這里,應(yīng)該先釋放block,然后是alock

import threading ,time
a = 5
alock = threading.Lock()
b = 5
block = threading.Lock()
def thread1calc():
  print "thread1 acquiring lock a"
  alock.acquire()
  time.sleep(5)
  print "thread1 acquiring lock b"
  block.acquire()
  a+=5
  b+=5
  print "thread1 releasing both locks"
  block.release()
  alock.release()
def thread2calc():
  print "thread2 acquiring lock b"
  block.acquire()
  time.sleep(5)
  print "thread2 acquiring lock a"
  alock.acquire()
  time.sleep(5)
  a+=10
  b+=10
  print "thread2 releasing both locks"
  block.release()
  alock.release()
t = threading.Thread(target = thread1calc)
t.setDaemon(1)
t.start()
t = threading.Thread(target = thread2calc)
t.setDaemon(2)
t.start()
while 1:
  time.sleep(300)

輸出:

thread1 acquiring lock a
thread2 acquiring lock b
thread1 acquiring lock b
thread2 acquiring lock a

希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 深入詳解Python中sys模塊的功能與應(yīng)用

    深入詳解Python中sys模塊的功能與應(yīng)用

    在Python的標(biāo)準(zhǔn)庫(kù)中,sys模塊是一個(gè)常用而強(qiáng)大的工具,它提供了與Python解釋器交互的函數(shù)和變量,本文將介紹sys模塊的一些常用函數(shù)和方法,并通過(guò)實(shí)際的代碼實(shí)例來(lái)解析它們的用法,希望對(duì)大家有所幫助
    2024-03-03
  • Python爬蟲(chóng)使用實(shí)例wallpaper問(wèn)題記錄

    Python爬蟲(chóng)使用實(shí)例wallpaper問(wèn)題記錄

    本文介紹解決中文亂碼的方法,以及Python爬蟲(chóng)處理數(shù)據(jù)、圖片URL的技巧,包括使用正則表達(dá)式處理字符串、URL替換等,還涉及單線程與多線程的應(yīng)用場(chǎng)景,如電腦壁紙和手機(jī)壁紙爬取,適合進(jìn)行Web數(shù)據(jù)抓取和處理的開(kāi)發(fā)者參考
    2024-09-09
  • 對(duì)python的bytes類型數(shù)據(jù)split分割切片方法

    對(duì)python的bytes類型數(shù)據(jù)split分割切片方法

    今天小編就為大家分享一篇對(duì)python的bytes類型數(shù)據(jù)split分割切片方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • python模塊和包的應(yīng)用BASE_PATH使用解析

    python模塊和包的應(yīng)用BASE_PATH使用解析

    這篇文章主要介紹了python模塊和包的應(yīng)用BASE_PATH使用解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • 在keras 中獲取張量 tensor 的維度大小實(shí)例

    在keras 中獲取張量 tensor 的維度大小實(shí)例

    這篇文章主要介紹了在keras 中獲取張量 tensor 的維度大小實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • 基于python3的socket聊天編程

    基于python3的socket聊天編程

    這篇文章主要為大家詳細(xì)介紹了基于python3的socket聊天編程,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • pytorch masked_fill報(bào)錯(cuò)的解決

    pytorch masked_fill報(bào)錯(cuò)的解決

    今天小編就為大家分享一篇pytorch masked_fill報(bào)錯(cuò)的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • Python入門案例之找出文件中出現(xiàn)次數(shù)最多的10個(gè)單詞

    Python入門案例之找出文件中出現(xiàn)次數(shù)最多的10個(gè)單詞

    這篇文章主要為大家?guī)?lái)一個(gè)簡(jiǎn)單的Python入門案例——找出文件中出現(xiàn)次數(shù)最多的10個(gè)單詞,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-02-02
  • ruff check文件目錄檢測(cè)--exclude參數(shù)設(shè)置路徑詳解

    ruff check文件目錄檢測(cè)--exclude參數(shù)設(shè)置路徑詳解

    這篇文章主要為大家介紹了ruff check文件目錄檢測(cè)exclude參數(shù)如何設(shè)置多少路徑詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • python range()函數(shù)取反序遍歷sequence的方法

    python range()函數(shù)取反序遍歷sequence的方法

    今天小編就為大家分享一篇python range()函數(shù)取反序遍歷sequence的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06

最新評(píng)論

双流县| 礼泉县| 黄骅市| 昭觉县| 井冈山市| 灵台县| 博罗县| 铁力市| 海南省| 五原县| 元朗区| 乐至县| 南和县| 淄博市| 若尔盖县| 乌兰察布市| 海淀区| 同仁县| 安达市| 内乡县| 禹城市| 临清市| 博兴县| 蒙自县| 上饶县| 鸡泽县| 清流县| 衡水市| 浪卡子县| 浦县| 逊克县| 安吉县| 衡山县| 连山| 凌云县| 呼伦贝尔市| 永德县| 昌乐县| 南川市| 剑阁县| 田阳县|