某天线上程序出现了无响应的情况,在排除网络等因素之后,用jstack把堆栈信息打印出来,发现好多线程都被锁住了。
仔细看代码,正常情况下不会出现死锁,抛出异常情况下,不会执行解锁,因此需要在try后的finally执行解锁,问题修复。
结论:尽量不用锁,特别是要做HA的情况下;谨慎对待锁,一定要确保解锁代码会被执行
某天线上程序出现了无响应的情况,在排除网络等因素之后,用jstack把堆栈信息打印出来,发现好多线程都被锁住了。
仔细看代码,正常情况下不会出现死锁,抛出异常情况下,不会执行解锁,因此需要在try后的finally执行解锁,问题修复。
结论:尽量不用锁,特别是要做HA的情况下;谨慎对待锁,一定要确保解锁代码会被执行