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

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

Java并發(fā)編程預(yù)防死鎖過程詳解-創(chuàng)新互聯(lián)

這篇文章主要介紹了Java并發(fā)編程預(yù)防死鎖過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

專注于為中小企業(yè)提供網(wǎng)站設(shè)計、成都網(wǎng)站設(shè)計服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)新會免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了成百上千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

在java并發(fā)編程領(lǐng)域已經(jīng)有技術(shù)大咖總結(jié)出了發(fā)生死鎖的條件,只有四個條件都發(fā)生時才會出現(xiàn)死鎖:

1.互斥,共享資源X和Y只能被一個線程占用

2.占有且等待,線程T1已經(jīng)取得共享資源X,在等待共享資源Y的時候,不釋放共享資源X

3.不可搶占,其他線程不能強(qiáng)行搶占線程T1占有的資源

4.循環(huán)等待,線程T1等待線程T2占有的資源,線程T2等待線程T1占有的資源,就是循環(huán)等待

只要能破壞其中一個,就可以成功避免死鎖的發(fā)生,因為對于共享資源我們要得就是互斥的效果,所以第一個條件是無法破壞的,所以可以從下面三個條件出手,具體實現(xiàn)方式:

1.對于“占用且等待”這個條件,我們可以一次性申請所有的資源,這樣就不存在等待了

class Allocator{
    //通過破壞占有且等待條件避免死鎖現(xiàn)象的發(fā)生
    private List als = new ArrayList<>();
    //一次申請所有的資源
    synchronized boolean apply(Object from, Object to){
      if (als.contains(from) || als.contains(to)){
        //只要存在一個賬戶被其他的業(yè)務(wù)鎖定則無法完成轉(zhuǎn)賬業(yè)務(wù)
        return false;
      }else {
        als.add(from);
        als.add(to);
      }
      return true;
    }
    //歸還資源
    synchronized void free(Object from,Object to){
      als.remove(from);
      als.remove(to);
    }
  }
  class Account {
    //actr應(yīng)該為單例
    private Allocator actr;
    private int balance;
    //轉(zhuǎn)賬
    void transfer(Account target, int amt){
      //一次性申請轉(zhuǎn)出和轉(zhuǎn)入賬戶,直到成功
      while (!actr.apply(this,target));
      try{
        //鎖定轉(zhuǎn)出賬戶
        synchronized (this){
          //鎖定轉(zhuǎn)入賬戶
          synchronized (target){
            if (this.balance > amt){
              this.balance -= amt;
              target.balance += amt;
            }
          }
        }
      }finally {
        actr.free(this, target);
      }
    }
  }

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


分享題目:Java并發(fā)編程預(yù)防死鎖過程詳解-創(chuàng)新互聯(lián)
新聞來源:http://weahome.cn/article/dipeis.html

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部