异常释放锁的状况
对于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(); }}