본문 바로가기

WebStudy/JAVA

Thread (쓰레드) 우선순위 양보 -3

public class Thread_E06 {

 public static void main(String[] args) {
  Thread[] t = new Thread[8];
  for (int i = 0; i < 8; i ++)
   t[i] = new Thread(new GooGoo_Yield(i+2));

   int n = 0;
   t[n++].setPriority(4); // 1~10 level로 우선권을 줄수 있으나 영향력은 사실 미미함.ㅣ  
   t[n++].setPriority(4);
   t[n++].setPriority(4);
   t[n++].setPriority(4);
   t[n++].setPriority(10);
   t[n++].setPriority(4);
   t[n++].setPriority(6);
   t[n++].setPriority(6);
  
  for(Thread v : t)
   v.start();
  
  System.out.println("main 종료");
 }
 

}

class GooGoo_Yield implements Runnable {
 private int dan;

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

 @Override
 public void run() {
  if (dan == 8) {
   System.out.println("8단이 yield...");
   Thread.yield(); //우선순위 양보
  }

  for (int i = 1; i < 10; i++) {
   System.out.println(dan + " 단 : " + dan + " * " + i + " = " + dan
     * i);
  }
 }
}