package com.jue.test;public class MainClass {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubMyThread t = new MyThread();t.start();//MainClass.sleep(10);synchronized(t){if(t.result == null) {try {System.out.println("Main-thread wait");t.wait();} catch (InterruptedException e) {}}}System.out.println("Main-thread end");}static class MyThread extends Thread{Object result = null;@Overridepublic void run() {synchronized(this){System.out.println("MyThread-thread start");for( int i = 1; i < 10; i ++) {MainClass.sleep(100);System.out.println("MyThread-get " + i);}result = new Object();notify();System.out.println("MyThread-thread end notify");}}}public static void sleep(int m) {try{Thread.sleep(m);}catch(Exception e){}}}
result:
Main-thread wait
MyThread-thread start
MyThread-get 1
MyThread-get 2
MyThread-get 3
MyThread-get 4
MyThread-get 5
MyThread-get 6
MyThread-get 7
MyThread-get 8
MyThread-get 9
MyThread-thread end notify
Main-thread end