join
join 方法有三种重载方式
方法 | 作用 |
---|---|
join() | 等待被join 的线程执行完毕 |
join(long millis) | 等待被join 的线程执行 millis 毫秒, millis毫秒后被join 的线程未执行完,则不再等待 |
join 线程
JoinLearn.java
public class JoinLearn extends Thread{
public JoinLearn(String name){
super(name);
}
public void run(){
int i = 0;
for(; i<10; i++){
System.out.println( "线程:"+getName()+"__"+i );
}
}
public static void main(String[] args) throws Exception {
JoinLearn j1 = new JoinLearn("childA");
j1.start();
JoinLearn j2 = new JoinLearn("childB");
for(int i=0; i<30; i++){
if(i==10){
j2.start();
}
if(i==20){
j2.join();
}
System.out.println("线程:main__"+i);
}
}
}
运行
线程:main__17
线程:main__18
线程:main__19
线程:childB__1
线程:childB__2
线程:childA__8
线程:childA__9
线程:childB__3
线程:childB__4
线程:childB__5
线程:childB__6
线程:childB__7
线程:childB__8
线程:childB__9
线程:main__20
线程:main__21
线程:main__22
线程:main__23
线程:main__24
线程:main__25
线程:main__26
线程:main__27
线程:main__28
线程:main__29