6.異常釋放鎖的狀況

異常釋放鎖的狀況

    對於web程序,異常的釋放鎖,極可能意味着程序出現了錯誤,業務邏輯產生了錯誤的結果致使了嚴重的錯誤,好比:一個隊列10個任務,不少對象都會去等待第1個
    隊列正常秩序產生的結果返回再次釋放鎖,那麼其中一個發生了異常,致使業務沒執行完畢,就釋放鎖的資源。
 
 
 
 
 
   
   
   
   
   
package demo1;/** * * Created by liudan on 2017/6/5. */public class MyThread5_synchronized2 { private int i=0; public synchronized void operation(){ while (true){ try { i++; Thread.sleep(200); System.err.println("∠"+Thread.currentThread().getName().toString()+",->\t"+i); if (i==8){ Integer.parseInt("a"); //throw new RuntimeException("執行錯誤"); } } catch (Exception e) { e.printStackTrace(); System.err.println("\t\t\t\terror is :"+i); continue;//應用storm 場景,繼續執行,後續手動去操做這個任務 //break; 當即中止執行,並在此處加入一個日誌監控 } } } public static void main(String[] args){ final MyThread5_synchronized2 s = new MyThread5_synchronized2(); Thread t = new Thread(new Runnable() { @Override public void run() { s.operation(); } },"t-1"); t.start(); }}
相關文章
相關標籤/搜索