国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python避免死鎖方法實例分析

2020-02-23 01:33:09
字體:
來源:轉載
供稿:網友

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

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

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

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

import threading ,timea = 5alock = threading.Lock()b = 5block = 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 athread2 acquiring lock bthread1 acquiring lock bthread2 acquiring lock a

希望本文所述對大家的Python程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平潭县| 清徐县| 本溪市| 三穗县| 合肥市| 新建县| 孟州市| 竹山县| 长兴县| 河曲县| 灵台县| 岑溪市| 遂川县| 阜新| 噶尔县| 汤阴县| 霍林郭勒市| 阳江市| 闸北区| 洪江市| 安龙县| 耿马| 霍林郭勒市| 平江县| 隆德县| 左权县| 建湖县| 呼玛县| 桦甸市| 城步| 景德镇市| 景东| 重庆市| 易门县| 申扎县| 连平县| 东安县| 平邑县| 沅陵县| 寿宁县| 收藏|