如果我有一个同步块,并且该块内的某处抛出了一个未在同步块内捕获的异常,那么当异常传播出同步块时,锁会被放弃吗?(同步块)
synchronized( mutex )
{
throw new Exception( "" );
}
锁总是被释放。
来自JLS§14.19 http://java.sun.com/docs/books/jls/third_edition/html/statements.html#14.19:
“如果该块的执行正常完成,则该锁是
解锁并且同步语句正常完成。如果
由于任何原因块的执行突然完成,然后
锁被解锁,然后同步语句完成
出于同样的原因突然”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)