본문 바로가기

WebStudy/JAVA

Thread (쓰레드) Join() - 04

t5 가 끝나기전까지 main 을 종료시키지 않음.

 

결과 ------

2 단 : 2 * 1 = 2
6 단 : 6 * 1 = 6
3 단 : 3 * 1 = 3
5 단 : 5 * 1 = 5
4 단 : 4 * 1 = 4
7 단 : 7 * 1 = 7
9 단 : 9 * 1 = 9
7 단 : 7 * 2 = 14
4 단 : 4 * 2 = 8
5 단 : 5 * 2 = 10
3 단 : 3 * 2 = 6
6 단 : 6 * 2 = 12
8 단 : 8 * 1 = 8
2 단 : 2 * 2 = 4
8 단 : 8 * 2 = 16
6 단 : 6 * 3 = 18
3 단 : 3 * 3 = 9
5 단 : 5 * 3 = 15
4 단 : 4 * 3 = 12
7 단 : 7 * 3 = 21
9 단 : 9 * 2 = 18
7 단 : 7 * 4 = 28
4 단 : 4 * 4 = 16
5 단 : 5 * 4 = 20
3 단 : 3 * 4 = 12
6 단 : 6 * 4 = 24
8 단 : 8 * 3 = 24
2 단 : 2 * 3 = 6
8 단 : 8 * 4 = 32
6 단 : 6 * 5 = 30
3 단 : 3 * 5 = 15
5 단 : 5 * 5 = 25
4 단 : 4 * 5 = 20
7 단 : 7 * 5 = 35
9 단 : 9 * 3 = 27
7 단 : 7 * 6 = 42
4 단 : 4 * 6 = 24
5 단 : 5 * 6 = 30
3 단 : 3 * 6 = 18
6 단 : 6 * 6 = 36
8 단 : 8 * 5 = 40
2 단 : 2 * 4 = 8
8 단 : 8 * 6 = 48
6 단 : 6 * 7 = 42
3 단 : 3 * 7 = 21
5 단 : 5 * 7 = 35
4 단 : 4 * 7 = 28
7 단 : 7 * 7 = 49
9 단 : 9 * 4 = 36
7 단 : 7 * 8 = 56
4 단 : 4 * 8 = 32
5 단 : 5 * 8 = 40
3 단 : 3 * 8 = 24
6 단 : 6 * 8 = 48
8 단 : 8 * 7 = 56
2 단 : 2 * 5 = 10
8 단 : 8 * 8 = 64
6 단 : 6 * 9 = 54
3 단 : 3 * 9 = 27
5 단 : 5 * 9 = 45
4 단 : 4 * 9 = 36
main 종료
7 단 : 7 * 9 = 63
9 단 : 9 * 5 = 45
8 단 : 8 * 9 = 72
2 단 : 2 * 6 = 12
9 단 : 9 * 6 = 54
2 단 : 2 * 7 = 14
9 단 : 9 * 7 = 63
2 단 : 2 * 8 = 16
9 단 : 9 * 8 = 72
2 단 : 2 * 9 = 18
9 단 : 9 * 9 = 81

ex------------------

public class Thread_E07 {

 public static void main(String[] args) {
  Thread t2 = new Thread(new GooGoo_Join(2));
  Thread t3 = new Thread(new GooGoo_Join(3));
  Thread t4 = new Thread(new GooGoo_Join(4));
  Thread t5 = new Thread(new GooGoo_Join(5));
  Thread t6 = new Thread(new GooGoo_Join(6));
  Thread t7 = new Thread(new GooGoo_Join(7));
  Thread t8 = new Thread(new GooGoo_Join(8));
  Thread t9 = new Thread(new GooGoo_Join(9));

  t2.setPriority(4);
  t3.setPriority(4);
  t4.setPriority(4);
  t5.setPriority(4);
  t6.setPriority(4);
  t7.setPriority(4);
  t8.setPriority(4);
  t9.setPriority(4);

  t2.start();
  t3.start();
  t4.start();
  t5.start();
  t6.start();
  t7.start();
  t8.start();
  t9.start();

  try {
   t5.join(); // t5가 종료될때까지 main이 살아있음.
  } catch (Exception e) {
   e.printStackTrace();
  }
  System.out.println("main 종료");
 }

}

class GooGoo_Join implements Runnable {
 private int dan;

 public GooGoo_Join(int dan) {
  this.dan = dan;
 }

 @Override
 public void run() {
  try {
   Thread.sleep(500);
  } catch (Exception e) {
   e.printStackTrace();
  }
  for (int i = 1; i < 10; i++) {
   System.out.println(dan + " 단 : " + dan + " * " + i + " = " + dan
     * i);
  }

 }
}