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

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

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

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

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

1. 一定要以一個固定的順序來取得鎖,這個列子中,意味著首先要取得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

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

相關(guān)文章

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

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

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

    Python爬蟲使用實(shí)例wallpaper問題記錄

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

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

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

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

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

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

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

    基于python3的socket聊天編程

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

    pytorch masked_fill報錯的解決

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

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

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

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

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

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

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

最新評論

湖南省| 广南县| 全椒县| 阳高县| 明溪县| 余江县| 获嘉县| 温州市| 和林格尔县| 塔河县| 宣武区| 孟连| 印江| 西峡县| 广河县| 昌宁县| 石狮市| 马龙县| 西青区| 张家港市| 夹江县| 赫章县| 卓尼县| 平罗县| 将乐县| 金寨县| 逊克县| 柘城县| 金坛市| 福安市| 车致| 旌德县| 晋江市| 嫩江县| 奎屯市| 陆河县| 股票| 榕江县| 嘉鱼县| 金塔县| 潼南县|