📄 testunlock.java
字号:
/** * Test that locks taken in synchronized methods are properly unlocked * when an exception occurs. Note that different mechanisms are used in * compiler & interpreter. * * @author Godmar Back <gback@cs.utah.edu> */public class TestUnlock { synchronized void throwException() throws Exception { throw new Exception(); } synchronized void success() { System.out.println("Success."); } public static void main(String av[]) throws Exception { final TestUnlock me = new TestUnlock(); new Thread() { public void run() { try { Thread.sleep(9000); } catch (Exception _) { } System.out.println("Time out. Failure."); System.exit(-1); } }.start(); Thread t = new Thread() { public void run() { try { me.throwException(); } catch (Exception _) { } } }; t.start(); t.join(); Thread t2 = new Thread() { public void run() { me.success(); } }; t2.start(); t2.join(); System.exit(0); }}/* Expected Output:Success.*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -