waittest.java

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

JAVA
80
字号
class WaitTest    implements Runnable{    static final long TOLERANCE = 100;    private final Object waiter;        WaitTest(Object waiter)    {	this.waiter = waiter;    }        public void run()    {	synchronized( this.waiter )	{	    try { Thread.sleep(500); } catch(InterruptedException e) { }	    this.waiter.notifyAll();	}    }    public static void main(String args[])	throws Exception    {	Object waiter = new Object();	long start, actual, end;		synchronized( waiter )	{	    final long time = 500;	    	    start = System.currentTimeMillis();	    waiter.wait(time);	    end = System.currentTimeMillis();	    actual = end - start;	    if( (actual > (time - TOLERANCE)) &&		(actual < (time + TOLERANCE)) )	    {		System.out.println("Okie");	    }	    else	    {		System.out.println("Fail");	    }	}	new Thread(new WaitTest(waiter)).start();	synchronized( waiter )	{	    final long time = 500;	    	    start = System.currentTimeMillis();	    waiter.wait(Long.MAX_VALUE);	    end = System.currentTimeMillis();	    actual = end - start;	    if( (actual > (time - TOLERANCE)) &&		(actual < (time + TOLERANCE)) )	    {		System.out.println("Okie");	    }	    else	    {		System.out.println("Fail "				   + end				   + " - "				   + start				   + " = "				   + actual);	    }	}    }}/* Expected Output:OkieOkie*/

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?