1、普通多线程
代码语言:javascript复制package demo;
public class JoinThread extends Thread {
public JoinThread(String name){
super(name);
}
@Override
public void run(){
for(int i=0;i<100;i ){
System.out.println(this.getName() i);
}
}
public static void main(String[] args){
JoinThread t=new JoinThread("子线程");
t.start();
System.out.println("主线程");
}
}
2、join线程
当某个线程调用其他线程的join()方法时,主调线程将等待被调线程执行完毕。
修改上面程序的主方法,其他代码不变
代码语言:javascript复制 public static void main(String[] args) throws InterruptedException {
JoinThread t=new JoinThread("子线程");
t.start();
//调用t线程的join方法,等待t线程执行完毕
t.join();
System.out.println("主线程");
}
3、超时不候
join()方法有一个常用的重载方法:
join(long millis)
:最长等待被调线程millis毫秒,超时不候。
public static void main(String[] args) throws InterruptedException {
JoinThread t=new JoinThread("子线程");
t.start();
//等待t线程2毫秒,超时不侯
t.join(2);
System.out.println("主线程");
}