171113 Thread.join() - RYUDONGJIN/Memo_wiki GitHub Wiki
Thread join() 정리
- 실행된 thread가 종료될 때까지 기다렸다가 실행시키는 method.
public class practice {
public static void main(String[] args) {
System.out.println("main Thread의 시작");
Thread outter = new Thread() { //innerClass
@Override
public void run() {
System.out.println("outter 시작");
Thread inner = new Thread(new Runnable() { //Runnable interface implements
@Override
public void run() {
System.out.println("inner의 시작");
for(int i=0; i<5; i++) {
System.out.println("inner의 카운트" + i);
try {
sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println("inner의 끝");
}
});
inner.start();
try {
inner.join(); //innerThread가 종료될 때까지 outterThread는 대기
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("outter의 끝");
}
};
outter.start();
try {
outter.join(); //outterThread가 종료될 때까지 mainThread는 대기
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("main의 끝");
}
}