亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Python多線程編程(五):死鎖的形成

系統 1819 0

前一篇文章Python:使用threading模塊實現多線程編程四[使用Lock互斥鎖]我們已經開始涉及到如何使用互斥鎖來保護我們的公共資源了,現在考慮下面的情況?C

如果有多個公共資源,在線程間共享多個資源的時候,如果兩個線程分別占有一部分資源并且同時等待對方的資源,這會引起什么問題?

死鎖概念

所謂死鎖: 是指兩個或兩個以上的進程在執行過程中,因爭奪資源而造成的一種互相等待的現象,若無外力作用,它們都將無法推進下去。此時稱系統處于死鎖狀態或系統產生了死鎖,這些永遠在互相等待的進程稱為死鎖進程。 由于資源占用是互斥的,當某個進程提出申請資源后,使得有關進程在無外力協助下,永遠分配不到必需的資源而無法繼續運行,這就產生了一種特殊現象死鎖。

復制代碼 代碼如下:

'''
Created on 2012-9-8
?
@author: walfred
@module: thread.TreadTest5
'''??
import threading?
?
counterA = 0?
counterB = 0?
?
mutexA = threading.Lock()?
mutexB = threading.Lock()?
?
class MyThread(threading.Thread):?
??? def __init__(self):?
??????? threading.Thread.__init__(self)?
?
??? def run(self):?
??????? self.fun1()?
??????? self.fun2()?
?
??? def fun1(self):?
??????? global mutexA, mutexB?
??????? if mutexA.acquire():?
??????????? print "I am %s , get res: %s" %(self.name, "ResA")?
?
??????????? if mutexB.acquire():?
??????????????? print "I am %s , get res: %s" %(self.name, "ResB")?
??????????????? mutexB.release()?
?
??????? mutexA.release()??
?
??? def fun2(self):?
??????? global mutexA, mutexB?
??????? if mutexB.acquire():?
??????????? print "I am %s , get res: %s" %(self.name, "ResB")?
?
??????????? if mutexA.acquire():?
??????????????? print "I am %s , get res: %s" %(self.name, "ResA")?
??????????????? mutexA.release()?
?
??????? mutexB.release()??
?
if __name__ == "__main__":?
??? for i in range(0, 100):?
??????? my_thread = MyThread()?
??????? my_thread.start()

代碼中展示了一個線程的兩個功能函數分別在獲取了一個競爭資源之后再次獲取另外的競爭資源,我們看運行結果:

復制代碼 代碼如下:

I am Thread-1 , get res: ResA
I am Thread-1 , get res: ResB
I am Thread-2 , get res: ResAI am Thread-1 , get res: ResB

可以看到,程序已經掛起在那兒了,這種現象我們就稱之為”死鎖“。

避免死鎖

避免死鎖主要方法就是:正確有序的分配資源,避免死鎖算法中最有代表性的算法是Dijkstra E.W 于1968年提出的銀行家算法。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日韩免费高清 | 日韩成人精品在线 | 国产精品久久自在自线观看 | 五月婷婷激情视频 | 日韩最新视频一区二区三 | 色黄网站青青草原免费 | 99视频在线看观免费 | 色综合精品久久久久久久 | 夜夜躁狠狠躁日日躁视频 | 国产香蕉在线视频 | 奇米影视888狠狠狠777九色 | 伊人久久波多野结衣中文字幕 | a一级毛片免费播放 | 香蕉精品 | 免费澳门一级毛片 | 中文一区二区视频 | 狠狠色噜噜狠狠狠狠69 | 日韩欧美中文字幕一区二区三区 | 一级成人毛片免费观看 | 国产成人一区二区三区影院免费 | 福利视频久久 | 亚洲第一人黄所 | 国产精品久久免费观看 | 美女一级毛片 | 国产一区二区精品久久91 | 久草在线首页 | 亚洲国产精品久久久久久网站 | 日本欧美中文字幕 | 一级白嫩美女毛片免费 | 日日摸夜夜夜夜夜添 | 99999久爱视频在线观看 | 91中文在线| 久草在线视频在线 | 欧美一级精品高清在线观看 | 黑人特级粗α级毛片 | 日韩国产精品欧美一区二区 | 久久精品99成人中文字幕880 | 国产精品久久久一区二区三区 | 四虎成人国产精品视频 | 欧美日韩亚洲第一页 | 福利小视频在线 |