真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python中的多線程出現(xiàn)死鎖怎么解決-創(chuàng)新互聯(lián)

這篇文章將為大家詳細講解有關python 中的多線程出現(xiàn)死鎖怎么解決,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

創(chuàng)新互聯(lián)公司主要從事網(wǎng)站設計制作、成都網(wǎng)站設計、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務嘉魚,十年網(wǎng)站建設經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:13518219792

死鎖的原理非常簡單,用一句話就可以描述完。就是當多線程訪問多個鎖的時候,不同的鎖被不同的線程持有,它們都在等待其他線程釋放出鎖來,于是便陷入了永久等待。比如A線程持有1號鎖,等待2號鎖,B線程持有2號鎖等待1號鎖,那么它們永遠也等不到執(zhí)行的那天,這種情況就叫做死鎖。

上下文管理器

首先我們來簡單介紹一下上下文管理器,上下文管理器我們其實經(jīng)常使用,比如我們經(jīng)常使用的 with語句 就是一個上下文管理器的經(jīng)典使用。當我們通過with語句打開文件的時候,它會自動替我們處理好文件讀取之后的關閉以及拋出異常的處理,可以節(jié)約我們大量的代碼。

同樣我們也可以自己定義一個上下文處理器,其實很簡單,我們只需要實現(xiàn)__enter__和__exit__這兩個函數(shù)即可。__enter__函數(shù)用來實現(xiàn)進入資源之前的操作和處理,那么顯然__exit__函數(shù)對應的就是使用資源結(jié)束之后或者是出現(xiàn)異常的處理邏輯。有了這兩個函數(shù)之后,我們就有了自己的上下文處理類了。

我們來看一個樣例:

class Sample:
  def __enter__(self):
    print('enter resources')
    return self
  
  def __exit__(self, exc_type, exc_val, exc_tb):
    print('exit')
    # print(exc_type)
    # print(exc_val)
    # print(exc_tb)

  def doSomething(self):
    a = 1/1
    return a

def getSample():
  return Sample()

if __name__ == '__main__':
  with getSample() as sample:
    print('do something')
    sample.doSomething()

分享文章:python中的多線程出現(xiàn)死鎖怎么解決-創(chuàng)新互聯(lián)
新聞來源:http://weahome.cn/article/coocgp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部