package Com.ZuXia.Day15;
/**
* void join()
* join方法可以使调用该方法的线程进入阻塞状态
* 直到该方法所属线程完成工作才会解除调用该方法线程的阻塞状态。
* join方法一般用于完成多个线程之间的同步工作问题。
*
* 实例:模拟图片的下载和加载两个过程。
* @author Administrator
*
*/
public class join方法9 {
//表示图片是否下载完毕
public static boolean isFinish = false;
public static void main(String[] args) {
Thread download=new Thread(){
public void run(){
System.out.println("down:开始下载图片...");
for(int i=1;i<=100;i++){
System.out.println("down 下载进度:"+i+"%");
try {
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println("图片下载完成!");
isFinish = true;
}
};
Thread show = new Thread(){
public void run(){
System.out.println("show 开始加载图片...");
/*
* 应该先等待download将图片下载完成。
*/
try {
download.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
if(!isFinish){
throw new RuntimeException("图片正在下载中...");
}
System.out.println("图片加载完毕。");
}
};
//启动线程
download.start();
show.start();
}
}