¼Ò¼³°°ÀºÀÚ¹Ù2ºÎ  Á¦8Àå Thread.  8.3.3 ¸ÖƼ½º·¹µåÀÇ ¿ì¼±±Ç  

 

 

8.3.3 ¸ÖƼ½º·¹µåÀÇ ¿ì¼±±Ç

 ½º·¹µåÀÇ ÀÛ¾÷ÀÇ ¿ì¼±±ÇÀ» ¾î¶»°Ô ÁÖ´À³Ä¿¡ µû¶ó¼­ ½º·¹µåÀÇ ÀÛ¾÷¼ø¼­°¡ ´Þ¶óÁý´Ï´Ù. ½º·¹µå¿¡ ÇÒ´çÇÒ ¼ö ÀÖ´Â ½º·¹µåÀÇ ¿ì¼±±Ç°ªÀº ´ÙÀ½°ú °°½À´Ï´Ù.

 

n        static int MAX_PRIORITY 

n        static int MIN_PRIORITY

n        static int NORM_PRIORITY

 

½º·¹µåÀÇ ¿ì¼±±Ç¿¡ ´ëÇÑ °ªÀº ThreadŬ·¡½ºÀÇ public static final»ó¼ö·Î Á¤ÀÇ µÇ¾î ÀÖ½À´Ï´Ù. ¿©·¯ºÐµéÀº ÀÌ »ó¼ö°ªÀ» ÀÌ¿ëÇØµµ µÇ¸ç Thread. MAX_PRIORITY¿Í Thread. MIN_PRIORITY»çÀÌÀÇ °ªÀ» Á÷Á¢ÇÒ´çÇØµµ µË´Ï´Ù. ÀÌ °ªÀ» ÇÒ´ç ÇÒ¶§´Â ThreadŬ·¡½ºÀÇ ¸â¹ö¸Þ¼­µåÀÎ setPriority¸Þ¼­µå¸¦ »ç¿ëÇÕ´Ï´Ù. setPriority¸Þ¼­µåÀÇ ¼±¾ðÀº ´ÙÀ½°ú °°½À´Ï´Ù.

 

n        public final void setPriority(int newPriority)

 

 ÀÌ ¸Þ¼­µå´Â finalÀ̱⠶§¹®¿¡ ÀçÁ¤ÀÇ µÉ ¼ö ¾ø½À´Ï´Ù. ±×¸®°í ¸¸¾à ÇöÀç ¼³Á¤µÇ¾î ÀÖ´Â priority°ªÀ» ¾ò°íÀÚ ÇÑ´Ù¸é

 

n        public final int getPriority()

 

getPriorty¸Þ¼­µå¸¦ ÀÌ¿ëÇÏ¿© ½º·¹µå°¡ °¡Áø ¿ì¼±±ÇÀ» È®ÀÎ ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÚ ±×·³ ÀÌ µÎ ¸Þ¼­µå¸¦ ÀÌ¿ëÇÏ¿© ½º·¹µåÀÇ ¿ì¼±±ÇÀ» Á¦¾îÇØ º¸µµ·Ï ÇϰڽÀ´Ï´Ù.

 

PriorityThreadMain.java

class SoloThread extends Thread {//½º·¹µå»ó¼Ó

             private int number=0;

             public SoloThread(int n) {

                           System.out.print(this.getName() + ":½º·¹µå½ÃÀÛ\t");

                           number = n;

             }

             public void run() {

                           int i = 0;

                           while(i < number) {

                                        System.out.print(getName() + ":p:"+this.getPriority() + ":"+i + "\t");

                                        try{

                                                     this.sleep(1);

                                        }catch(Exception e){System.out.println(e);}

                                        i++;

                           }

                           System.out.println("\n" + this.getName()+ ":p:"+this.getPriority() + ":½º·¹µåÁ¾·á\t");

             }

}

public class PriorityThreadMain {

   public static void main(String args[] ) {

                           System.out.println("Main¸Þ¼­µå½ÃÀÛ");

                           System.out.println("Thread.MAX_PRIORITY:" +Thread.MAX_PRIORITY);

                           System.out.println("Thread.MIN_PRIORITY:" +Thread.MIN_PRIORITY);

                           System.out.println("Thread.NORM_PRIORITY:" +Thread.NORM_PRIORITY);

                           for(int i=Thread.MIN_PRIORITY; i<Thread.MAX_PRIORITY+1; i++){

                                        SoloThread s = new SoloThread(100);

                                        s.setPriority(i);

                                        s.start();              

                           }

                           System.out.println("Main¸Þ¼­µåÁ¾·á");

   }

}

C:\examples\8. Thread>javac  PriorityThreadMain.java

 

C:\examples\8. Thread>java PriorityThreadMain

Main¸Þ¼­µå½ÃÀÛ

Thread.MAX_PRIORITY:10

Thread.MIN_PRIORITY:1

Thread.NORM_PRIORITY:5

Thread-0:½º·¹µå½ÃÀÛ     Thread-1:½º·¹µå½ÃÀÛ     Thread-2:½º·¹µå½ÃÀÛ     Thread-3

:½º·¹µå½ÃÀÛ     Thread-4:½º·¹µå½ÃÀÛ     Thread-5:½º·¹µå½ÃÀÛ     Thread-5:p:6:0

Thread-6:½º·¹µå½ÃÀÛ     Thread-6:p:7:0  Thread-7:½º·¹µå½ÃÀÛ     Thread-7:p:8:0

Thread-8:½º·¹µå½ÃÀÛ     Thread-8:p:9:0  Thread-9:½º·¹µå½ÃÀÛ     Thread-9:p:10:0

Main¸Þ¼­µåÁ¾·á

Thread-4:p:5:0  Thread-2:p:3:0  Thread-3:p:4:0  Thread-0:p:1:0  Thread-1:p:2:0

Thread-9:p:10:1 Thread-7:p:8:1  Thread-8:p:9:1  Thread-5:p:6:1  Thread-6:p:7:1

Thread-4:p:5:1  Thread-2:p:3:1  Thread-3:p:4:1  Thread-1:p:2:1  Thread-0:p:1:1

 

¡¦¡¦¡¦Áß°£ »ý·«

Thread-8:p:9:97 Thread-5:p:6:95 Thread-6:p:7:95 Thread-4:p:5:92

Thread-9:p:10:½º·¹µåÁ¾·á

Thread-7:p:8:99 Thread-8:p:9:98

Thread-7:p:8:½º·¹µåÁ¾·á

Thread-8:p:9:99 Thread-5:p:6:96 Thread-6:p:7:96 Thread-4:p:5:93 Thread-3:p:4:85

 

Thread-8:p:9:½º·¹µåÁ¾·á

Thread-5:p:6:97 Thread-6:p:7:97 Thread-4:p:5:94 Thread-2:p:3:86 Thread-3:p:4:86

Thread-0:p:1:79 Thread-5:p:6:98 Thread-6:p:7:98 Thread-4:p:5:95 Thread-2:p:3:87

Thread-3:p:4:87 Thread-1:p:2:82 Thread-5:p:6:99 Thread-6:p:7:99 Thread-4:p:5:96

Thread-2:p:3:88 Thread-3:p:4:88 Thread-0:p:1:80 Thread-1:p:2:83

Thread-5:p:6:½º·¹µåÁ¾·á

 

Thread-6:p:7:½º·¹µåÁ¾·á

Thread-4:p:5:97 Thread-2:p:3:89 Thread-3:p:4:89 Thread-0:p:1:81 Thread-1:p:2:84

Thread-4:p:5:98 Thread-2:p:3:90 Thread-3:p:4:90 Thread-0:p:1:82 Thread-1:p:2:85

Thread-4:p:5:99 Thread-2:p:3:91 Thread-3:p:4:91 Thread-0:p:1:83 Thread-1:p:2:86

 

Thread-4:p:5:½º·¹µåÁ¾·á

Thread-2:p:3:92 Thread-3:p:4:92 Thread-0:p:1:84 Thread-1:p:2:87 Thread-2:p:3:93

Thread-3:p:4:93 Thread-0:p:1:85 Thread-1:p:2:88 Thread-2:p:3:94 Thread-3:p:4:94

Thread-0:p:1:86 Thread-1:p:2:89 Thread-2:p:3:95 Thread-3:p:4:95 Thread-0:p:1:87

Thread-1:p:2:90 Thread-2:p:3:96 Thread-3:p:4:96 Thread-0:p:1:88 Thread-1:p:2:91

Thread-2:p:3:97 Thread-3:p:4:97 Thread-0:p:1:89 Thread-1:p:2:92 Thread-2:p:3:98

Thread-3:p:4:98 Thread-0:p:1:90 Thread-1:p:2:93 Thread-2:p:3:99 Thread-3:p:4:99

Thread-0:p:1:91 Thread-1:p:2:94

Thread-2:p:3:½º·¹µåÁ¾·á

 

Thread-3:p:4:½º·¹µåÁ¾·á

Thread-0:p:1:92 Thread-1:p:2:95 Thread-0:p:1:93 Thread-1:p:2:96 Thread-0:p:1:94

Thread-1:p:2:97 Thread-0:p:1:95 Thread-1:p:2:98 Thread-0:p:1:96 Thread-1:p:2:99

Thread-0:p:1:97

Thread-1:p:2:½º·¹µåÁ¾·á

Thread-0:p:1:98 Thread-0:p:1:99

Thread-0:p:1:½º·¹µåÁ¾·á

 

 

 À§ÀÇ ¿¹Á¦¿¡¼­ ¿ì¼±±ÇÀº ´ÙÀ½°ú °°Àº °á°ú¸¦ ³ªÅ¸³»°í ÀÕ½À´Ï´Ù.

 

n        System.out.println("Thread.MAX_PRIORITY:"+Thread.MAX_PRIORITY);

n         Thread.MAX_PRIORITY:10

n        System.out.println("Thread.MIN_PRIORITY:"+Thread.MIN_PRIORITY);

n         Thread.MIN_PRIORITY:1

n        System.out.println("Thread.NORM_PRIORITY:"+Thread.NORM_PRIORITY);

n         Thread.NORM_PRIORITY:5

 

Áï, WINNT2000ȯ°æ¿¡¼­ ¿ì¼±±ÇÀº 1´Ü°èºÎÅÍ 10´Ü°è±îÁö »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç NORM_PRIORITY´Â 5¶ó´Â °ÍÀ» ¾Ë ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. ±×¸®°í À§¿¡¼­ ¿ì¼±±ÇÀ» °¢ÀÚ ´Ù¸£°Ô ÁÖ±â À§Çؼ­ ´ÙÀ½°ú °°Àº Äڵ带 »ç¿ëÇϰí ÀÖ½À´Ï´Ù.

 

n        for(int i=Thread.MIN_PRIORITY; i<Thread.MAX_PRIORITY+1; i++){

n         SoloThread s = new SoloThread(100);

n         s.setPriority(i);

n         s.start();                   

n        }

 

´Ü¼øÈ÷ MIN_PRIORITY¿Í MAX_PRIORITY±îÁö ¸ðµç ¿ì¼±±ÇÀ» ÀüºÎ »ç¿ëÇØ¼­ ½º·¹µå¸¦ »ý¼ºÇϰí ÀÖ½À´Ï´Ù. °á°ú´Â MAX_PRIORITY¸¦ °¡Áø Thread-9¹øÀÌ Á¦ÀÏ ¸ÕÀú ÀÛ¾÷À» ³¡³»°í Thread-0¹øÀÌ ¸¶Áö¸·¿¡ ÀÛ¾÷À» ³¡³»´Â °ÍÀ» º¼ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. ÀÛ¾÷ÀÌ ´Ü¼øÇϱ⠶§¹®¿¡ sleep()¸Þ¼­µå¿¡¼­ sleepÇÏ´Â ½Ã°£À» 1¹Ð¸®¼¼ÄÁµå·Î ¹Ù²Ù¾î »ç¿ëÇß½À´Ï´Ù.

 

 ÀÌ·Î½á ¿©·¯ºÐÀº ½º·¹µåÀÇ ¿ì¼±±ÇÀ» º¯°æÇÏ´Â ¹æ¹ý¿¡ ´ëÇÏ¿© ¾Ë¾Æ º¸¾Ò½À´Ï´Ù. º°·Î ¾î·ÆÁö´Â ¾Ê½À´Ï´Ù. ´ÙÀ½À¸·Î ¸ÖƼ½º·¹µå°¡ ÇϳªÀÇ ÀÚ·á¿¡ Á¢±Ù ÇßÀ» ¶§ÀÇ ¹®Á¦Á¡À» ÇØ°áÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ¼­ ¾Ë¾Æ º¸µµ·Ï ÇϰڽÀ´Ï´Ù.



jabookÀúÀÚ¸íÇÔ
Á¦¸ñ:¼Ò¼³°°ÀºÀÚ¹Ù2ºÎ
ÀúÀÚ:ÃÖ¿µ°ü