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