1.让一个线程等待join线程完成后再执行:
join()
2.让一个线程等待
join线程
多少毫秒后再执行:
join(long millis)
3.让一个线程等待
join线程
多少毫秒多少微秒后再执行:
join(long millis, int nanos)
4下面的例子:让主线程在加入的线程执行完成后再执行
public class MyThread extends Thread {
public MyThread(String name){
super(name);
}
@Override
public void run() {
for (int i = 0; i < 50; i++) {
System.out.println(getName()+""+i);
}
}
}
为了验证问题这个循环输出50次加入线程的名称。
5.在主线程中启动要加入的线程
如果不使用join()方法
public static void main(String[] args){
MyThread mThread=new MyThread("加入的线程");
mThread.start();
// try {
// mThread.join();
// } catch (InterruptedException e) {
// TODO Auto-generated catch block
// e.printStackTrace();
//}
int i=0;
System.out.println(Thread.currentThread().getName()+"----"+i++);
}
结果会在线程之前会先执行主线程,然后再执行子线程
在主线程中启动要加入的线程
public static void main(String[] args){
MyThread mThread=new MyThread("加入的线程");
mThread.start();
try {
mThread.join();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int i=0;
System.out.println(Thread.currentThread().getName()+"----"+i++);
}
如果使用了jion方法又如何呢。看下面
看到主线程是在加入线程执行完成后再执行的。