日志标签:wait

wait操作无故退出?

分类:java, 并发评论:5条作者:ticmy日期:2013-04-05

前不久在网上看到这样一个例子: class MyThread extends Thread { public void run() { System.out.println(getName() + "开始sleep"); try { Thread.sleep(2000); } catch (Exception e) { e.printStackTrace(); } System.out.println(getName() + "结束sleep"); } } public class TestWaitNotify { public static void main(String[] args) throws Exception { Thread myThread = new MyThread(); myThread.start(); synchronized (myThread) { myThread.wait(); } System.out.println("wait结束."); } } myThread执行结束后,main线程中的wait操作就自动退出了。程序里也并没有看到有notify/notifyAll调用。 如果将程序改成下面这样: class MyThread extends Thread { public void run() { System.out.println(getName() + "开始sleep"); try { Thread.sleep(2000); } catch (Exception e) { e.print…