若果主线程想等待子线程执行完成之后再结束,可以用join方法
join 和sleep区别 join内部有wait实现,所以当执行join方法后,当前线程的锁被释放,那么其他线程就可以调用此线程的同步方法了。
public class Run { public static void main(String[] args) throws InterruptedException {
MyThread myThread = new MyThread();
myThread.start();
myThread.join(1000);
//Thread.sleep(1000);
System.out.println(" end time=" + System.currentTimeMillis());
}
}
MyThread
public class MyThread extends Thread{ public void run(){
try {
System.out.println("begin time="+System.currentTimeMillis());
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}