testunlock.java

来自「kaffe Java 解释器语言,源码,Java的子集系统,开放源代码」· Java 代码 · 共 55 行

JAVA
55
字号
/** * 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 + =
减小字号Ctrl + -
显示快捷键?