JavaTM 2
Platform
Std.  Ed.  v1. 4.0

java.lang
Ŭ·¡½º Thread

java.lang.Object 
  |
  +--java.lang.Thread
¸ðµç ±¸Çö ÀÎÅÍÆäÀ̽º:
Runnable

public class Thread
extends Object
implements Runnable

thread¶õ, ÇÁ·Î±×·¥³»¿¡¼­ÀÇ ½ÇÇàÀÇ threadÀÔ´Ï´Ù. Java °¡»ó ¸Ó½Å¿¡¼­´Â ¾îÇø®ÄÉÀ̼ÇÀº º´·Ä¿¡ ½ÇÇàµÇ´Â º¹¼öÀÇ thread¸¦ »ç¿ëÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.

°¢ thread¿¡´Â ¿ì¼± ¼øÀ§¸¦ ºÙÀÏ ¼ö ÀÖ°í ÀÖ½À´Ï´Ù. ¿ì¼± ¼øÀ§ÀÇ ³ôÀº thread´Â ¿ì¼± ¼øÀ§ÀÇ ³·Àº threadº¸´Ù ¿ì¼±ÇØ ½ÇÇàµË´Ï´Ù. °Ô´Ù°¡ °¢ thread°¡ demon·Î¼­ ¸¶Å© µÇ°í ÀÖ´Â °æ¿ìµµ ÀÖÀ¸¸é, µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ìµµ ÀÖ½À´Ï´Ù. ¾î´À thread·Î ½ÇÇàÁßÀÇ Äڵ尡 »õ·Î¿î Thread ¿ÀºêÁ§Æ®¸¦ ÀÛ¼ºÇϸé(ÀÚ), ÀÌ »õ·Î¿î thread¿¡´Â ±× ½ÃÁ¡¿¡¼­´Â ÀÛ¼ºÃøÀÇ threadÀÇ ¿ì¼± ¼øÀ§¿¡ µ¿ÀÏÇÑ ¿ì¼± ¼øÀ§°¡ ¼³Á¤µÇ¾î ÀÛ¼ºÃø thread°¡ demonÀÎ °æ¿ì¿¡¸¸, demon thread.

Åë»ó, Java °¡»ó ¸Ó½ÅÀÌ ±âµ¿Çϸé(ÀÚ), (ÀϹÝÀûÀ¸·Î´Â ÀÖ´Â ÁöÁ¤µÈ Ŭ·¡½ºÀÇ main ¶ó´Â À̸§ÀÌ ºÙÀÏ ¼ö ÀÖ¾ú´ø ¸Þ¼Òµå¸¦ È£ÃâÇÑ´Ù) 1 »ìÀÇ demon thread°¡ ¾Æ´Ñ thread°¡ Á¸ÀçÇÕ´Ï´Ù. Java °¡»ó ¸Ó½ÅÀº ÀÌÇÏÀÇ ¾î¶² °ÍÀΰ¡°¡ ¹ß»ýÇÒ ¶§±îÁö thread¸¦ °è¼Ó ½ÇÇàÇÕ´Ï´Ù.

»õ·Î¿î ½ÇÇàÀÇ thread¸¦ ÀÛ¼ºÇÏ·Á¸é 2 ¹æ¹ýÀÇ ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù. 1 °³ÀÇ ¹æ¹ýÀº Ŭ·¡½º¸¦ Thread ÀÇ ¼­ºê Ŭ·¡½ºÀÌ´Ù°í ¼±¾ðÇÏ´Â °ÍÀÔ´Ï´Ù. ÀÌ ¼­ºê Ŭ·¡½º´Â Ŭ·¡½º Thread ÀÇ run ¸Þ¼Òµå¸¦ ¿À¹ö¶óÀ̵å(override) ÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. ±×·¯¸é ¼­ºê Ŭ·¡½ºÀÇ ÀνºÅϽº´Â ÇÒ´çÇÒ ¼ö ÀÖ¾î ±âµ¿µÉ ¼ö°¡ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ÃʱâÄ¡º¸´Ù Å« ¼Ò¼ö¸¦ °è»êÇÏ´Â thread´Â ´ÙÀ½¿¡ ³ªÅ¸³»µµ·Ï(µíÀÌ) ÇØ ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.


     class PrimeThread extends Thread {
         long minPrime;
         PrimeThread(long minPrime) {
             this.minPrime = minPrime;
         }
 
         public void run() {
             // compute primes larger than minPrime
              .  .  .
         }
     }
 

´ÙÀ½¿¡, ÀÌÇÏ¿¡ ³ªÅ¸³»´Â ÄÚµå·Î thread¸¦ ÀÛ¼ºÇØ, threadÀÇ ½ÇÇàÀ» °³½ÃÇÕ´Ï´Ù.

     PrimeThread p = new PrimeThread(143);
     p.start();
 

thread¸¦ ÀÛ¼ºÇÏ´Â ÀÌÁ¦(¹ú½á) 1 °³ÀÇ ¹æ¹ýÀº Runnable ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇϴ Ŭ·¡½º¸¦ ¼±¾ðÇÏ´Â °ÍÀÔ´Ï´Ù. ±×·¸´Ù¸é, ±× Ŭ·¡½º´Â run ¸Þ¼Òµå¸¦ ±¸ÇöÇÕ´Ï´Ù. Ŭ·¡½ºÀÇ ÀνºÅϽº¸¦ ÇÒ´çÇÒ ¼ö ÀÖ¾îThread ÀÇ ÀÛ¼º½Ã¿¡ Àμö·Î¼­ °Ç³×¹Þ¾Æ °³½ÃµË´Ï´Ù. ÀÌ ¹æ¹ý¿¡¼­ÀÇ °°Àº ¿¹´Â ÀÌÇÏ¿¡ ³ªÅ¸³»°Ô µË´Ï´Ù.


     class PrimeRun implements Runnable {
         long minPrime;
         PrimeRun(long minPrime) {
             this.minPrime = minPrime;
         }
 
         public void run() {
             // compute primes larger than minPrime
              .  .  .
         }
     }
 

´ÙÀ½¿¡, ÀÌÇÏ¿¡ ³ªÅ¸³»´Â ÄÚµå·Î thread¸¦ ÀÛ¼ºÇØ, threadÀÇ ½ÇÇàÀ» °³½ÃÇÕ´Ï´Ù.

     PrimeRun p = new PrimeRun(143);
     new Thread(p). start();
 

°¢ thread´Â ½Äº°À» À§ÇÑ À̸§À» °¡Áý´Ï´Ù. º¹¼öÀÇ thread°¡ °°Àº À̸§À» °¡Áö´Â ÀÏÀÌ ÀÖ½À´Ï´Ù. threadÀÇ ÀÛ¼º½Ã¿¡ À̸§ÀÌ ÁöÁ¤µÇÁö ¾ÊÀ¸¸é thread¿¡´Â »õ·Î¿î À̸§ÀÌ »ý¼ºµË´Ï´Ù.

µµÀÔµÈ ¹öÁ¯:
JDK1. 0
°ü·Ã Ç׸ñ:
Runnable , Runtime.exit(int) , run() , stop()

ÇʵåÀÇ °³¿ä
static int MAX_PRIORITY
          thread·Î ¼³Á¤ÇÒ ¼ö ÀÖ´Â ÃÖ°í ¿ì¼± ¼øÀ§ÀÔ´Ï´Ù.
static int MIN_PRIORITY
          thread·Î ¼³Á¤ÇÒ ¼ö ÀÖ´Â ÃÖÀú ¿ì¼± ¼øÀ§ÀÔ´Ï´Ù.
static int NORM_PRIORITY
          thread¿¡ ÇÒ´çÇÒ ¼ö ÀÖ´Â µðÆúÆ®ÀÇ ¿ì¼± ¼øÀ§ÀÔ´Ï´Ù.
 
»ý¼ºÀÚÀÇ °³¿ä
Thread ()
          »õ·Î¿î Thread ¿ÀºêÁ§Æ®¸¦ ÇÒ´çÇÕ´Ï´Ù.
Thread (Runnable  target)
          »õ·Î¿î Thread ¿ÀºêÁ§Æ®¸¦ ÇÒ´çÇÕ´Ï´Ù.
Thread (Runnable  target, String  name)
          »õ·Î¿î Thread ¿ÀºêÁ§Æ®¸¦ ÇÒ´çÇÕ´Ï´Ù.
Thread (String  name)
          »õ·Î¿î Thread ¿ÀºêÁ§Æ®¸¦ ÇÒ´çÇÕ´Ï´Ù.
Thread (ThreadGroup  group, Runnable  target)
          »õ·Î¿î Thread ¿ÀºêÁ§Æ®¸¦ ÇÒ´çÇÕ´Ï´Ù.
Thread (ThreadGroup  group, Runnable  target, String  name)
          ±× ½ÇÇà ¿ÀºêÁ§Æ®·Î¼­ target , À̸§À¸·Î¼­ ÁöÁ¤µÈ name ¸¦ °¡Áö´Â group ¿¡ ÀÇÇØ ÂüÁ¶µÇ´Â thread ±×·ì¿¡ ¼ÓÇÏ´Â °Í °°Àº »õ·Î¿î Thread ¿ÀºêÁ§Æ®¸¦ ÇÒ´çÇÕ´Ï´Ù.
Thread (ThreadGroup  group, Runnable  target, String  name, long stackSize)
          »õ·Î¿î Thread ¿ÀºêÁ§Æ®¸¦ ÇÒ´çÇØ ½ÇÇà ¿ÀºêÁ§Æ®·Î¼­ target ¸¦ º¸°ü À¯ÁöÇØ, ÁöÁ¤µÈ name ¸¦ À̸§À¸·Î¼­ º¸°ü À¯ÁöÇϵµ·Ï(µíÀÌ) ÇÕ´Ï´Ù.
Thread (ThreadGroup  group, String  name)
          »õ·Î¿î Thread ¿ÀºêÁ§Æ®¸¦ ÇÒ´çÇÕ´Ï´Ù.
 
¸Þ¼ÒµåÀÇ °³¿ä
static int activeCount ()
          ÇöÇà threadÀÇ thread ±×·ì³»ÀÇ ¾×ƼºêÇÑ thread¼ö¸¦ µ¹·ÁÁÝ´Ï´Ù.
 void checkAccess ()
          ÇöÀç ½ÇÇàÁßÀÇ thread°¡, ÀÌ thread¸¦ º¯°æÇϱâ À§ÇÑ ¾×¼¼½º±ÇÀ» °¡Áö°í ÀÖÀ»Áö ¾î¶³Áö¸¦ ÆÇÁ¤ÇÕ´Ï´Ù.
 int countStackFrames ()
          Ãßõ µÇ°í ÀÖÁö ¾Ê½À´Ï´Ù.  ÀÌ È£ÃâÀÇ Á¤ÀÇ´Â Ãßõ µÇÁö ¾Ê´Â suspend() ¿¡ ÀÇÁ¸ÇÕ´Ï´Ù. ¶Ç, ÀÌ È£ÃâÀÇ °á°ú´Â ÇÁ·ÎÅØ¼ÇµÇÁö ¾Ê½À´Ï´Ù.
static Thread currentThread ()
          ÇöÀç ½ÇÇàÁßÀÇ thread ¿ÀºêÁ§Æ®ÀÇ ÂüÁ¶¸¦ µ¹·ÁÁÝ´Ï´Ù.
 void destroy ()
          Å¬¸° ¾÷À» ½Ç½ÃÇÏÁö ¸»°í ÀÌ thread¸¦ ÆÄ±âÇÕ´Ï´Ù.
static void dumpStack ()
          ÇöÀçÀÇ threadÀÇ ½ºÅà Ʈ·¹À̽º¸¦ Ãâ·ÂÇÕ´Ï´Ù.
static int enumerate (Thread [] tarray)
          ÇöÇà threadÀÇ thread ±×·ì ¹× ±× ÇÏÀ§ ±×·ì³»ÀÇ ¸ðµç ¾×ƼºêÇÑ thread¸¦, ÁöÁ¤µÈ ¹è¿­¿¡ Ä«ÇÇÇÕ´Ï´Ù.
 ClassLoader getContextClassLoader ()
          ÀÌ Thread ÀÇ ¹®¸Æ ClassLoader ¸¦ µ¹·ÁÁÝ´Ï´Ù.
 String getName ()
          ÀÌ threadÀÇ À̸§À» µ¹·ÁÁÝ´Ï´Ù.
 int getPriority ()
          ÀÌ threadÀÇ ¿ì¼± ¼øÀ§¸¦ µ¹·ÁÁÝ´Ï´Ù.
 ThreadGroup getThreadGroup ()
          ÀÌ thread°¡ ¼Ò¼ÓÇÏ´Â thread ±×·ìÀ» µ¹·ÁÁÝ´Ï´Ù.
static boolean holdsLock (Object  obj)
          ÇöÇà thread°¡ ÁöÁ¤µÈ ¿ÀºêÁ§Æ®¿¡ ´ëÇÑ ¸ð´ÏÅÍ ¶ôÀ» º¸°ü À¯ÁöÇÏ´Â °æ¿ì¿¡°Ô¸¸,true ¸¦ µ¹·ÁÁÝ´Ï´Ù.
 void interrupt ()
          ÀÌ thread¿¡ ³¢¾îµì´Ï´Ù.
static boolean interrupted ()
          ÇöÀçÀÇ thread°¡ ³¢¾îµé¾îÁö°í ÀÖ´Â Á¦¹ßÀ» Á¶»çÇÕ´Ï´Ù.
 boolean isAlive ()
          ÀÌ thread°¡ »ýÁ¸Çϰí ÀÖÀ»Áö ¾î¶³Áö¸¦ ÆÇÁ¤ÇÕ´Ï´Ù.
 boolean isDaemon ()
          ÀÌ thread°¡ demon threadÀÏÁö ¾î¶³Áö¸¦ ÆÇÁ¤ÇÕ´Ï´Ù.
 boolean isInterrupted ()
          ÀÌ thread°¡ ³¢¾îµé¾îÁö°í ÀÖ´Â Á¦¹ßÀ» Á¶»çÇÕ´Ï´Ù.
 void join ()
          ÀÌ thread°¡ Á¾·áÇÏ´Â °ÍÀ» ´ë±âÇÕ´Ï´Ù.
 void join (long millis)
          ÀÌ thread°¡ Á¾·áÇÏ´Â °ÍÀ», ÃÖ°í·Î millis ¹Ð¸® ¼¼ÄÁµå ´ë±âÇÕ´Ï´Ù.
 void join (long millis, int nanos)
          ÃÖ°í·Î millis ¹Ð¸® ¼¼ÄÁµå¿¡ nanos ³ª³ëÃʸ¦ °¡»êÇÑ »çÀÌ, ÀÌ thread°¡ Á¾·áÇÏ´Â °ÍÀ» ´ë±âÇÕ´Ï´Ù.
 void resume ()
          Ãßõ µÇ°í ÀÖÁö ¾Ê½À´Ï´Ù.  ÀÌ ¸Þ¼Òµå´Â µ¥µå ·ÏÀ» ¹ß»ýÇϱ⠽±±â ¶§¹®¿¡ Ãßõ µÇÁö ¾Ê½À´Ï´Ù. suspend() ¿Í ÇÔ²² »ç¿ëÇϱâ À§ÇØ(¶§¹®¿¡)ÀÎ ¸¸Å­ Á¦°øµÇ°í ÀÖ½À´Ï´Ù. ÀÚ¼¼ÇÑ °ÍÀº ¡¸Thread.stop, Thread.suspend, ¹× Thread.resume °¡ Ãßõ µÇÁö ¾Ê´Â ÀÌÀ¯¡¹¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
 void run ()
          ÀÌ thread°¡ º°°³ÀÇ Runnable ½ÇÇà ¿ÀºêÁ§Æ®¸¦ »ç¿ëÇØ ÀÛ¼ºµÇ¾úÀ» °æ¿ì, ±× Runnable ¿ÀºêÁ§Æ®ÀÇ run ¸Þ¼Òµå°¡ ºÒ·Á °©´Ï´Ù.
 void setContextClassLoader (ClassLoader  cl)
          ÀÌ Thread ÀÇ ¹®¸Æ ClassLoader ¸¦ ¼³Á¤ÇÕ´Ï´Ù.
 void setDaemon (boolean on)
          ÀÌ thread¸¦, demon thread ¶Ç´Â À¯Àú thread·Î¼­ ¸¶Å© ÇÕ´Ï´Ù.
 void setName (String  name)
          ÀÌ threadÀÇ À̸§À» Àμö name ¿¡ µ¿ÀÏÇØÁöµµ·Ï(µíÀÌ) º¯°æÇÕ´Ï´Ù.
 void setPriority (int newPriority)
          ÀÌ threadÀÇ ¿ì¼± ¼øÀ§¸¦ º¯°æÇÕ´Ï´Ù.
static void sleep (long millis)
          ÇöÀç ½ÇÇàÁßÀÇ thread¸¦, ÁöÁ¤µÈ ¹Ð¸® ¼¼ÄÁµå¼öÀÇ »çÀÌ, sleeve (ÀϽÃÀûÀ¸·Î ½ÇÇàÀ» Á¤Áö) ½Ãŵ´Ï´Ù.
static void sleep (long millis, int nanos)
          ÇöÀç ½ÇÇàÁßÀÇ thread¸¦, ÁöÁ¤µÈ ¹Ð¸® ¼¼ÄÁµå¼ö·Î ÁöÁ¤µÈ ³ª³ëÃʼö¸¦ °¡»êÇÑ »çÀÌ, sleeve (½ÇÇà Á¤Áö) ½Ãŵ´Ï´Ù.
 void start ()
          ÀÌ threadÀÇ ½ÇÇàÀ» °³½ÃÇÕ´Ï´Ù.
 void stop ()
          Ãßõ µÇ°í ÀÖÁö ¾Ê½À´Ï´Ù.  ÀÌ ¸Þ¼Òµå´Â º»ÁúÀûÀ¸·Î ¾ÈÀüÇÏÁö´Â ¾Ê½À´Ï´Ù. Thread.stop ¸¦ »ç¿ëÇØ thread¸¦ Á¤ÁöÇϸé(ÀÚ), üũµÇ¾î ÀÖÁö ¾ÊÀº ThreadDeath ¿¹¿Ü°¡ ½ºÅþƷ¡¿¡¼­ À§¿¡°Ô ÀüÇÒ ¼ö ÀÖ¾ú´ø °á°ú, ±× thread¿¡ ÀÇÇØ ¶ô µÇ°í ÀÖ´ø ¸ð´ÏÅÍÀÇ ¶ôÀÌ ¸ðµÎ ÇØÁ¦µË´Ï´Ù. ÀÌ·¯ÇÑ ¸ð´ÏÅÍ¿¡ ÀÇÇØ Á÷Àü±îÁö º¸È£µÇ°í ÀÖ´ø ¿ÀºêÁ§Æ®°¡ Á¤ÇÕ¼ºÀÇ ¾ø´Â »óÅ¿¡ ÀÖ¾úÀ» °æ¿ì, ¸Á°¡Áø ¿ÀºêÁ§Æ®´Â ´Ù¸¥ thread¿¡ ´ëÇØ¼­ °¡½Ã°¡ µÇ¾î, µ¿ÀÛÀÌ ÇÁ·ÎÅØ¼ÇµÇÁö ¾Ê´Â °ÍÀÌ ÀÖ½À´Ï´Ù. ¸¹Àº °æ¿ì, Ÿ°Ù threadÀÇ ½ÇÇà Á¤Áö¸¦ Áö½ÃÇÏ·Á¸é ,stop ´Â ¾Æ´Ï°í, ´ÜÁö ÀϺÎÀÇ º¯¼ö¸¦ º¯°æÇÏ´Â Äڵ带 »ç¿ëÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. Ÿ°Ù thread´Â ÀÌ º¯¼ö¸¦ Á¤±âÀûÀ¸·Î Ã¼Å©ÇØ, º¯¼ö°¡ ½ÇÇà Á¤Áö¸¦ Áö½ÃÇϰí ÀÖ´Â °æ¿ì´Â run ¸Þ¼Òµå·ÎºÎÅÍ ÀûÀýÈ÷ º¹±ÍÇÕ´Ï´Ù. Á¶°Ç º¯¼öµîÀ¸·Î Ÿ°Ù thread°¡ ¿À·§µ¿¾È ´ë±âÇϰí ÀÖ´Â °æ¿ì, ´ë±â¸¦ ÁߴܽÃŰ·Á¸é ,interrupt ¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù. ÀÚ¼¼ÇÑ °ÍÀº ¡¸Thread.stop, Thread.suspend, ¹× Thread.resume °¡ Ãßõ µÇÁö ¾Ê´Â ÀÌÀ¯¡¹¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
 void stop (Throwable  obj)
          Ãßõ µÇ°í ÀÖÁö ¾Ê½À´Ï´Ù.  ÀÌ ¸Þ¼Òµå´Â º»ÁúÀûÀ¸·Î ¾ÈÀüÇÏÁö´Â ¾Ê½À´Ï´Ù. stop() (Àμö ¾øÀ½)¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä. °Ô´Ù°¡ ÀÌ ¸Þ¼Òµå´Â Ÿ°Ù thread·Î ó¸®ÀÇ Áغñ°¡ µÇ¾î ÀÖÁö ¾ÊÀº ¿¹¿ÜÀÇ »ý¼º¿¡ »ç¿ëµÇ´Â ÀÏÀÌ ÀÖ´Â Á¡¿¡¼­µµ À§ÇèÇÕ´Ï´Ù (ÀÌ ¸Þ¼Òµå°¡ ¾øÀ¸¸é thread¿¡ ÀÇÇØ ½½·Î¿ì µÉ¸®°¡ ¾ø´Â üũµÈ ¿¹¿Ü µî). ÀÚ¼¼ÇÑ °ÍÀº ¡¸Thread.stop, Thread.suspend, ¹× Thread.resume °¡ Ãßõ µÇÁö ¾Ê´Â ÀÌÀ¯¡¹¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
 void suspend ()
          Ãßõ µÇ°í ÀÖÁö ¾Ê½À´Ï´Ù.  ÀÌ ¸Þ¼Òµå´Â µ¥µå ·ÏÀ» ¹ß»ýÇϱ⠽±±â ¶§¹®¿¡ Ãßõ µÇÁö ¾Ê½À´Ï´Ù. Ÿ°Ù thread°¡, Áß¿äÇÑ system resource¸¦ º¸È£Çϰí ÀÖ´Â ¸ð´ÏÅÍÀÇ ¶ôÀ» º¸°ü À¯ÁöÇϰí ÀÖ´Â »óÅ·ΠÁߴܵǾúÀ» °æ¿ì, Ÿ°Ù thread°¡ Àç°³µÉ ¶§±îÁö ¾î´À threadµµ ÀÌ ¸®¼Ò½º¿¡ ¾×¼¼½º ÇÒ ¼ö ¾ø½À´Ï´Ù. Ÿ°Ù thread¸¦ Àç°³ÇÏ·Á°í ÇÏ´Â thread°¡,resume ¸¦ È£ÃâÇϱâ Àü¿¡ ÀÌ ¸ð´ÏÅ͸¦ Àá±×·Á°í Çϸé(ÀÚ), µ¥µå ·ÏÀÌ ¹ß»ýÇÕ´Ï´Ù. Åë»ó, ±×·¯ÇÑ µ¥µå ·ÏÀº ÀÚ½ÅÀ» ¡¸´Ù¿î ´çÇß´Ù¡¹ÇÁ·Î¼¼½º·Î¼­ Ç¥¸íÇÕ´Ï´Ù. ÀÚ¼¼ÇÑ °ÍÀº ¡¸Thread.stop, Thread.suspend, ¹× Thread.resume °¡ Ãßõ µÇÁö ¾Ê´Â ÀÌÀ¯¡¹¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
 String toString ()
          threadÀÇ À̸§, ¿ì¼± ¼øÀ§, thread ±×·ìÀ» Æ÷ÇÔÇÑ ÀÌ threadÀÇ Ä³¸¯ÅÍ ¶óÀΠǥÇöÀ» µ¹·ÁÁÝ´Ï´Ù.
static void yield ()
          ÇöÀç ½ÇÇàÁßÀÇ thread ¿ÀºêÁ§Æ®¸¦ ÀϽÃÀûÀ¸·Î ÈÞÁö½ÃÄÑ, ´Ù¸¥ thread¸¦ ½ÇÇàÇÒ ¼ö ÀÖ°Ô ÇÕ´Ï´Ù.
 
Ŭ·¡½º java.lang. Object ¿¡¼­ »ó¼Ó¹ÞÀº ¸Þ¼Òµå
clone , equals , finalize , getClass , hashCode , notify , notifyAll , wait , wait , wait
 

ÇʵåÀÇ »ó¼¼

MIN_PRIORITY

public static final int MIN_PRIORITY
thread·Î ¼³Á¤ÇÒ ¼ö ÀÖ´Â ÃÖÀú ¿ì¼± ¼øÀ§ÀÔ´Ï´Ù.

°ü·Ã Ç׸ñ:
Á¤¼ö ÇʵåÄ¡

NORM_PRIORITY

public static final int NORM_PRIORITY
thread¿¡ ÇÒ´çÇÒ ¼ö ÀÖ´Â µðÆúÆ®ÀÇ ¿ì¼± ¼øÀ§ÀÔ´Ï´Ù.

°ü·Ã Ç׸ñ:
Á¤¼ö ÇʵåÄ¡

MAX_PRIORITY

public static final int MAX_PRIORITY
thread·Î ¼³Á¤ÇÒ ¼ö ÀÖ´Â ÃÖ°í ¿ì¼± ¼øÀ§ÀÔ´Ï´Ù.

°ü·Ã Ç׸ñ:
Á¤¼ö ÇʵåÄ¡
»ý¼ºÀÚÀÇ »ó¼¼

Thread

public Thread()
»õ·Î¿î Thread ¿ÀºêÁ§Æ®¸¦ ÇÒ´çÇÕ´Ï´Ù. ÀÌ constructor Àº Thread(null, null, gname) ¿Í °°Àº È¿°ú¸¦ °¡Áý´Ï´Ù. ÀÌ °æ¿ì,gname ´Â »õ·Ó°Ô ÀÛ¼ºµÇ´Â À̸§ÀÔ´Ï´Ù. ÀÚµ¿ÀûÀ¸·Î ÀÛ¼ºµÇ´Â À̸§Àº n ¸¦ Á¤¼ö·Î Çϸé(ÀÚ) "Thread-"+n ÀÇ Çü½ÄÀ» ÃëÇÕ´Ï´Ù.

°ü·Ã Ç׸ñ:
Thread(java.lang.ThreadGroup, java.lang.Runnable, java.lang.String)

Thread

public Thread(Runnable  target)
»õ·Î¿î Thread ¿ÀºêÁ§Æ®¸¦ ÇÒ´çÇÕ´Ï´Ù. ÀÌ constructor Àº Thread(null, target, gname) ¿Í °°Àº È¿°ú¸¦ °¡Áý´Ï´Ù. ÀÌ °æ¿ì,gname ´Â »õ·Ó°Ô ÀÛ¼ºµÇ´Â À̸§ÀÔ´Ï´Ù. ÀÚµ¿ÀûÀ¸·Î ÀÛ¼ºµÇ´Â À̸§Àº n ¸¦ Á¤¼ö·Î Çϸé(ÀÚ) "Thread-"+n ÀÇ Çü½ÄÀ» ÃëÇÕ´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
target - ±× run ¸Þ¼Òµå°¡ ºÒ·Á °¡´Â ¿ÀºêÁ§Æ®
°ü·Ã Ç׸ñ:
Thread(java.lang.ThreadGroup, java.lang.Runnable, java.lang.String)

Thread

public Thread(ThreadGroup  group,
              Runnable  target)
»õ·Î¿î Thread ¿ÀºêÁ§Æ®¸¦ ÇÒ´çÇÕ´Ï´Ù. ÀÌ constructor Àº Thread(group, target, gname) ¿Í °°Àº È¿°ú¸¦ °¡Áý´Ï´Ù. ÀÌ °æ¿ì,gname ´Â »õ·Ó°Ô ÀÛ¼ºµÇ´Â À̸§ÀÔ´Ï´Ù. ÀÚµ¿ÀûÀ¸·Î ÀÛ¼ºµÇ´Â À̸§Àº n ¸¦ Á¤¼ö·Î Çϸé(ÀÚ) "Thread-"+n ÀÇ Çü½ÄÀ» ÃëÇÕ´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
group - thread ±×·ì
target - ±× run ¸Þ¼Òµå°¡ ºÒ·Á °¡´Â ¿ÀºêÁ§Æ®
¿¹¿Ü:
SecurityException - ÇöÀçÀÇ thread°¡, ÁöÁ¤µÈ thread ±×·ì³»ÀÇ thread¸¦ ÀÛ¼ºÇÒ ¼ö ¾ø´Â °æ¿ì
°ü·Ã Ç׸ñ:
Thread(java.lang.ThreadGroup, java.lang.Runnable, java.lang.String)

Thread

public Thread(String  name)
»õ·Î¿î Thread ¿ÀºêÁ§Æ®¸¦ ÇÒ´çÇÕ´Ï´Ù. ÀÌ constructor Àº Thread(null, null, name) ¿Í °°Àº È¿°ú¸¦ °¡Áý´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
name - »õ·Î¿î threadÀÇ À̸§
°ü·Ã Ç׸ñ:
Thread(java.lang.ThreadGroup, java.lang.Runnable, java.lang.String)

Thread

public Thread(ThreadGroup  group,
              String  name)
»õ·Î¿î Thread ¿ÀºêÁ§Æ®¸¦ ÇÒ´çÇÕ´Ï´Ù. ÀÌ constructor Àº Thread(group, null, name) ¿Í °°Àº È¿°ú¸¦ °¡Áý´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
group - thread ±×·ì
name - »õ·Î¿î threadÀÇ À̸§
¿¹¿Ü:
SecurityException - ÇöÀçÀÇ thread°¡, ÁöÁ¤µÈ thread ±×·ì³»ÀÇ thread¸¦ ÀÛ¼ºÇÒ ¼ö ¾ø´Â °æ¿ì
°ü·Ã Ç׸ñ:
Thread(java.lang.ThreadGroup, java.lang.Runnable, java.lang.String)

Thread

public Thread(Runnable  target,
              String  name)
»õ·Î¿î Thread ¿ÀºêÁ§Æ®¸¦ ÇÒ´çÇÕ´Ï´Ù. ÀÌ constructor Àº Thread(null, target, name) ¿Í °°Àº È¿°ú¸¦ °¡Áý´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
target - ±× run ¸Þ¼Òµå°¡ ºÒ·Á °¡´Â ¿ÀºêÁ§Æ®
name - »õ·Î¿î threadÀÇ À̸§
°ü·Ã Ç׸ñ:
Thread(java.lang.ThreadGroup, java.lang.Runnable, java.lang.String)

Thread

public Thread(ThreadGroup  group,
              Runnable  target,
              String  name)
±× ½ÇÇà ¿ÀºêÁ§Æ®·Î¼­ target , À̸§À¸·Î¼­ ÁöÁ¤µÈ name ¸¦ °¡Áö´Â group ¿¡ ÀÇÇØ ÂüÁ¶µÇ´Â thread ±×·ì¿¡ ¼ÓÇÏ´Â °Í °°Àº »õ·Î¿î Thread ¿ÀºêÁ§Æ®¸¦ ÇÒ´çÇÕ´Ï´Ù.

group °¡ null ·Î, ½ÃÅ¥·¯Æ¼ ¸Å´ÏÀú°¡ Á¸ÀçÇÏ´Â °æ¿ì, ±×·ìÀº ½ÃÅ¥·¯Æ¼ ¸Å´ÏÀúÀÇ getThreadGroup ¸Þ¼Òµå¿¡ ÀÇÇØ Á¤ÇØÁý´Ï´Ù. group °¡ null ·Î ½ÃÅ¥·¯Æ¼ ¸Å´ÏÀú°¡ Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì, ¶Ç´Â ½ÃÅ¥·¯Æ¼ ¸Å´ÏÀúÀÇ getThreadGroup ¸Þ¼Òµå°¡ null ¸¦ µ¹·ÁÁÖ´Â °æ¿ì, ±×·ìÀº ½Å±Ô thread¸¦ ÀÛ¼ºÁßÀÇ thread¿Í °°Àº ThreadGroup ·Î ¼³Á¤µË´Ï´Ù.

½ÃÅ¥·¯Æ¼ ¸Å´ÏÀú°¡ Á¸ÀçÇÏ´Â °æ¿ì, ThreadGroup ¸¦ Àμö·Î¼­ ½ÃÅ¥·¯Æ¼ ¸Å´ÏÀúÀÇ checkAccess ¸Þ¼Òµå°¡ ºÒ·Á °©´Ï´Ù. ±× °á°ú, SecurityException °¡ ½½·Î¿ì µÇ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù.

target Àμö°¡ null °¡ ¾Æ´Ñ °æ¿ì, ÀÌ thread°¡ ±âµ¿µÇ¸é(ÀÚ) target ÀÇ run ¸Þ¼Òµå°¡ ºÒ·Á °©´Ï´Ù. target Àμö°¡ null ÀÎ °æ¿ì´Â ÀÌ thread°¡ ±âµ¿µÉ ¶§ ÀÌ threadÀÇ run ¸Þ¼Òµå°¡ ºÒ·Á °©´Ï´Ù.

»õ·Ó°Ô ÀÛ¼ºµÈ threadÀÇ ¿ì¼± ¼øÀ§´Â ±× thread¸¦ ÀÛ¼ºÇÑ thread, Áï ÇöÀç ½ÇÇàÁßÀÇ threadÀÇ ¿ì¼± ¼øÀ§¿Í °°°Ô ¼³Á¤µË´Ï´Ù. ÀÌ ¿ì¼± ¼øÀ§¸¦ »õ·Î¿î °ªÀ¸·Î º¯°æÇÏ´Â °æ¿ì´Â ¸Þ¼Òµå setPriority ¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

»õ·Ó°Ô ÀÛ¼ºµÈ thread´Â ±×°ÍÀ» ÀÛ¼ºÇÏ´Â thread°¡ demon thread¿Í ¸¶Å© µÇ°í ÀÖ´Â °æ¿ì¿¡¸¸, demon thread¿Í ¸¶Å© µË´Ï´Ù. thread°¡ demonÀÏÁö ¾î¶³Áö¸¦ º¯°æÇÏ´Â °æ¿ì´Â ¸Þ¼Òµå setDaemon ¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
group - thread ±×·ì
target - ±× run ¸Þ¼Òµå°¡ ºÒ·Á °¡´Â ¿ÀºêÁ§Æ®
name - »õ·Î¿î threadÀÇ À̸§
¿¹¿Ü:
SecurityException - ÇöÀçÀÇ thread°¡, ÁöÁ¤µÈ thread ±×·ì³»ÀÇ thread¸¦ ÀÛ¼ºÇÒ ¼ö ¾ø´Â °æ¿ì
°ü·Ã Ç׸ñ:
Runnable.run() , run() , setDaemon(boolean) , setPriority(int) , ThreadGroup.checkAccess() , SecurityManager.checkAccess(java.lang.Thread)

Thread

public Thread(ThreadGroup  group,
              Runnable  target,
              String  name,
              long stackSize)
»õ·Î¿î Thread ¿ÀºêÁ§Æ®¸¦ ÇÒ´çÇØ ½ÇÇà ¿ÀºêÁ§Æ®·Î¼­ target ¸¦ º¸°ü À¯ÁöÇØ, ÁöÁ¤µÈ name ¸¦ À̸§À¸·Î¼­ º¸°ü À¯ÁöÇϵµ·Ï(µíÀÌ) ÇÕ´Ï´Ù. ¶Ç,group ¿¡ ÀÇÇØ ÂüÁ¶µÇ´Â thread ±×·ì¿¡ ¼Ò¼ÓÇØ, ÁöÁ¤µÈ ¡¸½ºÅà »çÀÌÁ¸¦ º¸°ü À¯ÁöÇÕ´Ï´Ù.

ÀÌ constructor Àº threadÀÇ ½ºÅà »çÀÌÁî ÁöÁ¤ÀÌ °¡´ÉÇÑ Á¡À» Á¦¿ÜÇØ,Thread(ThreadGroup, Runnable, String) ¿Í °°½À´Ï´Ù. ½ºÅà »çÀÌÁî´Â °¡»ó ¸Ó½ÅÀ» ÀÌ threadÀÇ ½ºÅÿ¡ ÇÒ´çÇÏ´Â address °ø°£ÀÇ ´ë·«ÀÇ ¹ÙÀÌÆ®¼ö°¡ µË´Ï´Ù. stackSize ÆÄ¶ó¹ÌÅͰ¡ Á¸ÀçÇÏ´Â °æ¿ì, ±× È¿°ú´Â Ç÷§Æû¿¡ ÀÇÇØ Å©°Ô ´Ù¸¨´Ï´Ù.

¸î°³ÀÇ Ç÷§Æû¿¡¼­´Â stackSize ÆÄ¶ó¹ÌÅÍ¿¡ ÀÇÇØ Å« °ªÀ» ÁöÁ¤ÇÏ´Â °ÍÀ¸·Î, thread°¡ StackOverflowError ¸¦ ½½·Î¿ì Çϱâ Àü¿¡ ÀÇÇØ Å« ȸ±Í ½Éµµ¸¦ ´Þ¼ºÇÏ´Â °ÍÀÌ °¡´ÉÇÏ°Ô µË´Ï´Ù. °°À̺¸´Ù ÀÛÀº °ªÀ» ÁöÁ¤ÇÏ´Â °ÍÀ¸·Î, º¸´Ù ¸¹Àº thread°¡ OutOfMemoryError (¶Ç´Â ´Ù¸¥ ³»ºÎ ¿¡·¯)¸¦ ½½·Î¿ì ÇÏÁö ¾Ê°í , µ¿½Ã¿¡ Á¸ÀçÇÏ´Â °ÍÀÌ °¡´ÉÇÏ°Ô µË´Ï´Ù. stackSize ÆÄ¶ó¹ÌÅÍÀÇ °ª°ú ÃÖ´ë ȸ±Í ½Éµµ³ª º´Çà ·¹º§°úÀÇ °ü°è´Â Ç÷§Æû¿¡ µû¶ó¼­ ´Ù¸¨´Ï´Ù. Ç÷§Æû¿¡ µû¶ó¼­´Â stackSize ÆÄ¶ó¹ÌÅÍÀÇ °ªÀÌ ¾î¶² ¿µÇâÀ» ÁÖÁö ¾Ê´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù.

°¡»ó ¸Ó½ÅÀº stackSize ÆÄ¶ó¹ÌÅ͸¦ ÀÚÀ¯·Ó°Ô Ãë±ÞÇØ, Áö½ÃÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. Ç÷§Æû¿¡¼­´Â ÁöÁ¤µÈ °ªÀÌ ³Ê¹« ÀÛÀº °æ¿ì, °¡»ó ¸Ó½ÅÀº ´ë½Å¿¡ Ç÷§Æû °íÀ¯ÀÇ ÃÖ¼ÒÄ¡¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÁöÁ¤µÈ °ªÀÌ ³Ê¹« Å« °æ¿ì¿¡´Â °¡»ó ¸Ó½ÅÀº ´ë½Å¿¡ Ç÷§Æû °íÀ¯ÀÇ ÃÖ´ëÄ¡¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. °°ÀÌ °¡»ó ¸Ó½ÅÀº ÀûÀýÇÑ °æ¿ì¿¡´Â ÁöÁ¤µÈ °ªÀÇ Àý»óÇØ ¶Ç´Â ÀÎÇϸ¦ ÀÚÀ¯·Ó°Ô ½ÇÇà (¶Ç´Â ¿ÏÀüÇÏ°Ô ¹«½Ã)ÇÒ ¼ö ÀÖ½À´Ï´Ù.

stackSize ÆÄ¶ó¹ÌÅÍ¿¡ °ªÁ¦·Î¸¦ ÁöÁ¤Çϸé(ÀÚ), ÀÌ constructor Àº Thread(ThreadGroup, Runnable, String) constructor °ú Á¤È®ÇÏ°Ô °°Àº µ¿ÀÛÀ» ½ÇÇàÇÕ´Ï´Ù.

ÀÌ constructor ÀÇ µ¿ÀÛÀº Ç÷§Æû¿¡ µû¶ó¼­ ´Ù¸£±â À§Çؼ­(¶§¹®¿¡), ½ÅÁßÇÏ°Ô »ç¿ëÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ÁöÁ¤µÈ °è»êÀÇ ½ÇÇà¿¡ ÇÊ¿äÇÑ thread ½ºÅà »çÀÌÁî´Â JRE ±¸Çö¿¡ µû¶ó¼­ ´Ù¸¦ °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù. ÀÌ ¶§¹®¿¡, ½ºÅà »çÀÌÁî ÆÄ¶ó¹ÌÅ͸¦ ÁÖÀÇ ±í°Ô Æ©´× Çϰųª ¾îÇø®ÄÉÀ̼ÇÀ» ½ÇÇàÇÏ´Â JRE ±¸Çö ¸¶´Ù Æ©´×À» ¹Ýº¹ÇÏ´Â °ÍÀÌ ÇÊ¿äÇÑ °æ¿ì°¡ ÀÖ½À´Ï´Ù.

±¸Çö»óÀÇ ÁÖÀÇÁ¡: Java Ç÷§Æû ±¸ÇöÀÚ´Â stackSize parameter ¸¦ ±âÁØÀ¸·Î ÇØ ±¸ÇöÀÇ µ¿ÀÛÀ» ¹®¼­È­ÇØ µÎ´Â °ÍÀ» ÃßõÇÕ´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
group - thread ±×·ì
target - ±× run ¸Þ¼Òµå°¡ ºÒ·Á °¡´Â ¿ÀºêÁ§Æ®
name - »õ·Î¿î threadÀÇ À̸§
stackSize - ½Å±Ô threadÀÇ ½ºÅà »çÀÌÁî ¶Ç´Â Á¦·Î (ÀÌ ÆÄ¶ó¹ÌÅ͸¦ ¹«½ÃÇÏ´Â °ÍÀ» ³ªÅ¸³½´Ù)
¿¹¿Ü:
SecurityException - ÇöÀçÀÇ thread°¡, ÁöÁ¤µÈ thread ±×·ì³»ÀÇ thread¸¦ ÀÛ¼ºÇÒ ¼ö ¾ø´Â °æ¿ì
¸Þ¼ÒµåÀÇ »ó¼¼

currentThread

public static Thread  currentThread()
ÇöÀç ½ÇÇàÁßÀÇ thread ¿ÀºêÁ§Æ®ÀÇ ÂüÁ¶¸¦ µ¹·ÁÁÝ´Ï´Ù.

¹Ýȯ°ª:
ÇöÀç ½ÇÇàÁßÀÇ thread

yield

public static void yield()
ÇöÀç ½ÇÇàÁßÀÇ thread ¿ÀºêÁ§Æ®¸¦ ÀϽÃÀûÀ¸·Î ÈÞÁö½ÃÄÑ, ´Ù¸¥ thread¸¦ ½ÇÇàÇÒ ¼ö ÀÖ°Ô ÇÕ´Ï´Ù.


sleep

public static void sleep(long millis)
                  throws InterruptedException 
ÇöÀç ½ÇÇàÁßÀÇ thread¸¦, ÁöÁ¤µÈ ¹Ð¸® ¼¼ÄÁµå¼öÀÇ »çÀÌ, sleeve (ÀϽÃÀûÀ¸·Î ½ÇÇàÀ» Á¤Áö) ½Ãŵ´Ï´Ù. thread´Â ¸ð´ÏÅÍÀÇ ¼ÒÀ¯±ÇÀ» ÀÒÁö ¾Ê½À´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
millis - ¹Ð¸® ¼¼ÄÁµå ´ÜÀ§ÀÇ sleeve ½Ã°£ÀÇ ±æÀÌ
¿¹¿Ü:
InterruptedException - º°ÀÇ thread°¡ ÇöÀçÀÇ thread¿¡ ³¢¾îµé¾úÀ» °æ¿ì. ÀÌ ¿¹¿Ü°¡ ½½·Î¿ì µÇ¸é(ÀÚ), ÇöÀçÀÇ threadÀÇ ¼¼Ä¡±â ½ºÅ×ÀÌÅͽº´Â Ŭ¸®¾î µÇ´Â
°ü·Ã Ç׸ñ:
Object.notify()

sleep

public static void sleep(long millis,
                         int nanos)
                  throws InterruptedException 
ÇöÀç ½ÇÇàÁßÀÇ thread¸¦, ÁöÁ¤µÈ ¹Ð¸® ¼¼ÄÁµå¼ö·Î ÁöÁ¤µÈ ³ª³ëÃʼö¸¦ °¡»êÇÑ »çÀÌ, sleeve (½ÇÇà Á¤Áö) ½Ãŵ´Ï´Ù. thread´Â ¸ð´ÏÅÍÀÇ ¼ÒÀ¯±ÇÀ» ÀÒÁö ¾Ê½À´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
millis - ¹Ð¸® ¼¼ÄÁµå ´ÜÀ§ÀÇ sleeve ½Ã°£ÀÇ ±æÀÌ
nanos - sleeveÇϱâ À§ÇÑ 0 ~ 999999 ÀÇ Ãß°¡ ³ª³ëÃÊ
¿¹¿Ü:
IllegalArgumentException - millis ÀÇ °ªÀÌ À½¼öÀÇ °æ¿ì, ¶Ç´Â nanos ÀÇ °ªÀÌ 0 ~ 999999 ÀÇ ¹üÀ§¿ÜÀÇ °æ¿ì
InterruptedException - º°ÀÇ thread°¡ ÇöÀçÀÇ thread¿¡ ³¢¾îµé¾úÀ» °æ¿ì. ÀÌ ¿¹¿Ü°¡ ½½·Î¿ì µÇ¸é(ÀÚ), ÇöÀçÀÇ threadÀÇ ¼¼Ä¡±â ½ºÅ×ÀÌÅͽº´Â Ŭ¸®¾î µÇ´Â
°ü·Ã Ç׸ñ:
Object.notify()

start

public void start()
ÀÌ threadÀÇ ½ÇÇàÀ» °³½ÃÇÕ´Ï´Ù. Java °¡»ó ¸Ó½ÅÀº ÀÌ threadÀÇ run ¸Þ¼Òµå¸¦ È£ÃâÇÕ´Ï´Ù.

±× °á°ú, (start ¸Þ¼Òµå¿¡ÀÇ È£Ãâ·ÎºÎÅÍ º¹±ÍÇÑ´Ù) ÇöÀçÀÇ thread¿Í (±× run ¸Þ¼Òµå¸¦ ½ÇÇàÇÑ´Ù) ´Ù¸¥ thread¶ó°í ÇÏ´Â 2 °³ÀÇ thread°¡ º´·Ä¿¡ ½ÇÇàµË´Ï´Ù.

¿¹¿Ü:
IllegalThreadStateException - thread°¡ ¹ú½á ±âµ¿Çϰí ÀÖ¾úÀ» °æ¿ì
°ü·Ã Ç׸ñ:
run() , stop()

run

public void run()
ÀÌ thread°¡ º°°³ÀÇ Runnable ½ÇÇà ¿ÀºêÁ§Æ®¸¦ »ç¿ëÇØ ÀÛ¼ºµÇ¾úÀ» °æ¿ì, ±× Runnable ¿ÀºêÁ§Æ®ÀÇ run ¸Þ¼Òµå°¡ ºÒ·Á °©´Ï´Ù. ±×·¸Áö ¾ÊÀº °æ¿ì, ÀÌ ¸Þ¼Òµå´Â ¾Æ¹«°Íµµ ½Ç½ÃÇÏÁö ¾Ê°í º¹±ÍÇÕ´Ï´Ù.

Thread ÀÇ ¼­ºê Ŭ·¡½º´Â ÀÌ ¸Þ¼Òµå¸¦ ¿À¹ö¶óÀ̵å(override) ÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.

Á¤ÀÇ:
ÀÎÅÍÆäÀ̽º Runnable ³»ÀÇ run
°ü·Ã Ç׸ñ:
start() , stop() , Thread(java.lang.ThreadGroup, java.lang.Runnable, java.lang.String) , Runnable.run()

stop

public final void stop()
Ãßõ µÇ°í ÀÖÁö ¾Ê½À´Ï´Ù.  ÀÌ ¸Þ¼Òµå´Â º»ÁúÀûÀ¸·Î ¾ÈÀüÇÏÁö´Â ¾Ê½À´Ï´Ù. Thread.stop ¸¦ »ç¿ëÇØ thread¸¦ Á¤ÁöÇϸé(ÀÚ), üũµÇ¾î ÀÖÁö ¾ÊÀº ThreadDeath ¿¹¿Ü°¡ ½ºÅþƷ¡¿¡¼­ À§¿¡°Ô ÀüÇÒ ¼ö ÀÖ¾ú´ø °á°ú, ±× thread¿¡ ÀÇÇØ ¶ô µÇ°í ÀÖ´ø ¸ð´ÏÅÍÀÇ ¶ôÀÌ ¸ðµÎ ÇØÁ¦µË´Ï´Ù. ÀÌ·¯ÇÑ ¸ð´ÏÅÍ¿¡ ÀÇÇØ Á÷Àü±îÁö º¸È£µÇ°í ÀÖ´ø ¿ÀºêÁ§Æ®°¡ Á¤ÇÕ¼ºÀÇ ¾ø´Â »óÅ¿¡ ÀÖ¾úÀ» °æ¿ì, ¸Á°¡Áø ¿ÀºêÁ§Æ®´Â ´Ù¸¥ thread¿¡ ´ëÇØ¼­ °¡½Ã°¡ µÇ¾î, µ¿ÀÛÀÌ ÇÁ·ÎÅØ¼ÇµÇÁö ¾Ê´Â °ÍÀÌ ÀÖ½À´Ï´Ù. ¸¹Àº °æ¿ì, Ÿ°Ù threadÀÇ ½ÇÇà Á¤Áö¸¦ Áö½ÃÇÏ·Á¸é ,stop ´Â ¾Æ´Ï°í, ´ÜÁö ÀϺÎÀÇ º¯¼ö¸¦ º¯°æÇÏ´Â Äڵ带 »ç¿ëÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. Ÿ°Ù thread´Â ÀÌ º¯¼ö¸¦ Á¤±âÀûÀ¸·Î Ã¼Å©ÇØ, º¯¼ö°¡ ½ÇÇà Á¤Áö¸¦ Áö½ÃÇϰí ÀÖ´Â °æ¿ì´Â run ¸Þ¼Òµå·ÎºÎÅÍ ÀûÀýÈ÷ º¹±ÍÇÕ´Ï´Ù. Á¶°Ç º¯¼öµîÀ¸·Î Ÿ°Ù thread°¡ ¿À·§µ¿¾È ´ë±âÇϰí ÀÖ´Â °æ¿ì, ´ë±â¸¦ ÁߴܽÃŰ·Á¸é ,interrupt ¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù. ÀÚ¼¼ÇÑ °ÍÀº ¡¸Thread.stop, Thread.suspend, ¹× Thread.resume °¡ Ãßõ µÇÁö ¾Ê´Â ÀÌÀ¯¡¹¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä.

thread¿¡ °­Á¦ÀûÀ¸·Î ½ÇÇàÀ» Á¤Áö½Ãŵ´Ï´Ù.

½ÃÅ¥·¯Æ¼ ¸Å´ÏÀú°¡ ÀνºÅç µÇ°í ÀÖ´Â °æ¿ì,this ¸¦ Àμö·Î¼­ ½ÃÅ¥·¯Æ¼ ¸Å´ÏÀúÀÇ checkAccess ¸Þ¼Òµå°¡ ºÒ·Á °©´Ï´Ù. ÀÌ °á°ú, ÇöÀçÀÇ thread·Î SecurityException °¡ ½½·Î¿ì µÇ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù.

¶Ç, ÀÌ thread°¡ ÇöÀçÀÇ thread¿Í ´Ù¸¥ °æ¿ì, Áï, ÇöÀçÀÇ thread°¡ ÀڽŠÀÌ¿ÜÀÇ thread¸¦ Á¤ÁöÇÏ·Á°í Çϰí ÀÖ´Â °æ¿ì´Â RuntimePermission("stopThread") ¸¦ Àμö·Î¼­ ½ÃÅ¥·¯Æ¼ ¸Å´ÏÀúÀÇ checkPermission ¸Þ¼Òµåµµ ºÒ·Á °©´Ï´Ù. ÀÌ °æ¿ì¿¡µµ, ÇöÀçÀÇ thread·Î SecurityException °¡ ½½·Î¿ì µÇ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù.

ÀÌ thread¿¡ ÀÇÇØ ³ªÅ¸³»Áö´Â thread´Â ±×°ÍÀÌ ½ÇÇàÇϰí ÀÖ´ø µ¿ÀÛ¿¡ °ü°è¾øÀÌ °­Á¦ÀûÀ¸·Î ÀÌ»ó Á¤Áö ´çÇØ »õ·Ó°Ô »ý¼ºÇÑ ThreadDeath ¿ÀºêÁ§Æ®¸¦ ¿¹¿Ü·Î¼­ ½½·Î¿ì ÇÕ´Ï´Ù.

¾ÆÁ÷ ±âµ¿µÇ¾î ÀÖÁö ¾ÊÀº thread¸¦ Á¤ÁöÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. thread°¡ ÃÖÁ¾ÀûÀ¸·Î ±âµ¿µÇÀÚ, °ð¹Ù·Î Á¾·áÇÕ´Ï´Ù.

¾îÇø®ÄÉÀ̼ÇÀº Åë»ó°ú´Â ´Ù¸¥ Ŭ¸° ¾÷ µ¿ÀÛÀ» ½ÇÇàÇØ¾ß ÇÏ´Â °æ¿ì¸¦ Á¦¿ÜÇØ,ThreadDeath ¸¦ ijġ ÇØ¾ß ÇÏÁö´Â ¾Ê½À´Ï´Ù. ´Ù¸¸,ThreadDeath ¸¦ ½½·Î¿ì Çϸé(ÀÚ), thread°¡ Á¤½ÄÀ¸·Î Á¾·áÇϱâ Àü¿¡ try ¹®ÀÇ finally ÀýÀÌ ½ÇÇàµÇ´Â °Í¿¡ ÁÖÀÇÇØ ÁÖ¼¼¿ä. catch ÀýÀÌ ThreadDeath ¿ÀºêÁ§Æ®¸¦ ijġ ÇÏ´Â °æ¿ì´Â thread°¡ ½ÇÁ¦·Î Á¾·áÇϵµ·Ï(µíÀÌ) ¿ÀºêÁ§Æ®¸¦ ½½·Î¿ì ´Ù½Ã ÇÏ´Â °ÍÀÌ Áß¿äÇÕ´Ï´Ù.

±×·¸Áö ¾ÊÀº °æ¿ì, ijġµÇ¾î ÀÖÁö ¾ÊÀº ¿¹¿Ü¸¦ Ãë±ÞÇÏ´Â ÃÖ°í ·¹º§ÀÇ ¿¡·¯ Çڵ鷯´Â ijġµÇ¾î ÀÖÁö ¾ÊÀº ¿¹¿Ü°¡ ThreadDeath ÀÇ ÀνºÅϽºÀ̸é, ¸Þ¼¼Áö¸¦ Ãâ·ÂÇϰųª ¾îÇø®ÄÉÀ̼ǿ¡ ÅëÁöÇϰųª ÇÏ´Â °ÍÀº ÇÏÁö ¾Ê½À´Ï´Ù.

¿¹¿Ü:
SecurityException - ÇöÀçÀÇ thread°¡ ÀÌ thread¸¦ º¯°æÇÒ ¼ö ¾ø´Â °æ¿ì
°ü·Ã Ç׸ñ:
interrupt() , checkAccess() , run() , start() , ThreadDeath , ThreadGroup.uncaughtException(java.lang.Thread, java.lang.Throwable) , SecurityManager.checkAccess(Thread) , SecurityManager.checkPermission(java.security.Permission)

stop

public final void stop(Throwable  obj)
Ãßõ µÇ°í ÀÖÁö ¾Ê½À´Ï´Ù.  ÀÌ ¸Þ¼Òµå´Â º»ÁúÀûÀ¸·Î ¾ÈÀüÇÏÁö´Â ¾Ê½À´Ï´Ù. stop() (Àμö ¾øÀ½)¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä. °Ô´Ù°¡ ÀÌ ¸Þ¼Òµå´Â Ÿ°Ù thread·Î ó¸®ÀÇ Áغñ°¡ µÇ¾î ÀÖÁö ¾ÊÀº ¿¹¿ÜÀÇ »ý¼º¿¡ »ç¿ëµÇ´Â ÀÏÀÌ ÀÖ´Â Á¡¿¡¼­µµ À§ÇèÇÕ´Ï´Ù (ÀÌ ¸Þ¼Òµå°¡ ¾øÀ¸¸é thread¿¡ ÀÇÇØ ½½·Î¿ì µÉ¸®°¡ ¾ø´Â üũµÈ ¿¹¿Ü µî). ÀÚ¼¼ÇÑ °ÍÀº ¡¸Thread.stop, Thread.suspend, ¹× Thread.resume °¡ Ãßõ µÇÁö ¾Ê´Â ÀÌÀ¯¡¹¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä.

thread¿¡ °­Á¦ÀûÀ¸·Î ½ÇÇàÀ» Á¤Áö½Ãŵ´Ï´Ù.

½ÃÅ¥·¯Æ¼ ¸Å´ÏÀú°¡ ÀνºÅç µÇ°í ÀÖ´Â °æ¿ì, ½ÃÅ¥·¯Æ¼ ¸Å´ÏÀúÀÇ checkAccess ¸Þ¼Òµå°¡ ºÒ·Á °©´Ï´Ù. ÀÌ °á°ú, ÇöÀçÀÇ thread·Î SecurityException °¡ ½½·Î¿ì µÇ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù.

¶Ç, ÀÌ thread°¡ ÇöÀçÀÇ thread¿Í ´Ù¸¥ °æ¿ì, Áï, ÇöÀçÀÇ thread°¡ ÀڽŠÀÌ¿ÜÀÇ thread¸¦ Á¤ÁöÇÏ·Á°í Çϰí ÀÖ´Â °æ¿ì, ¶Ç´Â obj °¡ ThreadDeath ÀÇ ÀνºÅϽº°¡ ¾Æ´Ñ °æ¿ì´Â RuntimePermission("stopThread") ¸¦ Àμö·Î¼­ ½ÃÅ¥·¯Æ¼ ¸Å´ÏÀúÀÇ checkPermission ¸Þ¼Òµå°¡ ºÒ·Á °©´Ï´Ù. ÀÌ °æ¿ì¿¡µµ, ÇöÀçÀÇ thread·Î SecurityException °¡ ½½·Î¿ì µÇ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù.

Àμö obj °¡ null ÀÇ °æ¿ì,NullPointerException °¡ (ÇöÀçÀÇ thread³»¿¡¼­) ½½·Î¿ì µË´Ï´Ù.

ÀÌ thread¿¡ ÀÇÇØ ³ªÅ¸³»Áö´Â thread´Â ±×°ÍÀÌ ½ÇÇàÇÏ´Â µ¿ÀÛ¿¡´Â °ü°è¾øÀÌ °­Á¦ÀûÀ¸·Î Á¾·áµÇ¾î ¿¹¿Ü·Î¼­ Throwable ¿ÀºêÁ§Æ® obj °¡ ½½·Î¿ì µË´Ï´Ù. À̰ÍÀº Åë»ó¿¡¼­´Â ÇàÇØÁöÁö ¾Ê´Â µ¿ÀÛÀ̱â (À§ÇØ)¶§¹®¿¡, Åë»óÀº Àμö¸¦ ¼³Á¤ÇÏÁö ¾Ê´Â stop ¸Þ¼Òµå¸¦ »ç¿ëÇØ ÁÖ¼¼¿ä.

¾ÆÁ÷ ±âµ¿µÇ¾î ÀÖÁö ¾ÊÀº thread¸¦ Á¤ÁöÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. thread°¡ ÃÖÁ¾ÀûÀ¸·Î ±âµ¿µÇÀÚ, °ð¹Ù·Î Á¾·áÇÕ´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
obj - ½½·Î¿ì ´ë»óÀÇ Throwable ¿ÀºêÁ§Æ®
¿¹¿Ü:
SecurityException - ÇöÀçÀÇ thread°¡ ÀÌ thread¸¦ º¯°æÇÒ ¼ö ¾ø´Â °æ¿ì
°ü·Ã Ç׸ñ:
interrupt() , checkAccess() , run() , start() , stop() , SecurityManager.checkAccess(Thread) , SecurityManager.checkPermission(java.security.Permission)

interrupt

public void interrupt()
ÀÌ thread¿¡ ³¢¾îµì´Ï´Ù.

ÀÌ threadÀÇ checkAccess ¸Þ¼Òµå°¡ ÃÖÃÊ·Î ºÒ·Á °©´Ï´Ù. ÀÌ ¸Þ¼Òµå¿¡ ÀÇÇØ,SecurityException °¡ ½½·Î¿ì µÇ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù.

Object Ŭ·¡½ºÀÇ wait() ,wait(long) ,wait(long, int) ¸Þ¼ÒµåÀÇ È£ÃâÇØ, ¶Ç´Â ÀÌ Å¬·¡½ºÀÇ join() , join(long) ,join(long, int) ,sleep(long) , ¶Ç´Â sleep(long, int) ¸Þ¼ÒµåÀÇ È£Ãâ·Î ÀÌ thread°¡ ºí·Ï µÇ´Â °æ¿ì, ¼¼Ä¡±â ½ºÅ×ÀÌÅͽº´Â Ŭ¸®¾î µÇ¾îInterruptedException ¸¦ ¹Þ½À´Ï´Ù.

¼¼Ä¡±â °¡´É ä³Î ¿¡ ´ëÇÑ I/O Á¶ÀÛÀ¸·Î ÀÌ thread°¡ ºí·Ï µÇ´Â °æ¿ì, ä³ÎÀº ´ÝÇôÁ® threadÀÇ ¼¼Ä¡±â ½ºÅ×ÀÌÅͽº°¡ ¼³Á¤µË´Ï´Ù. ¶Ç, thread´Â ClosedByInterruptException ¸¦ ¹Þ½À´Ï´Ù.

Selector ·Î ÀÌ thread°¡ ºí·Ï µÇ´Â °æ¿ì, threadÀÇ ¼¼Ä¡±â ½ºÅ×ÀÌÅͽº°¡ ¼³Á¤µÇ¾î, ¼±Åà Á¶ÀÛÀ¸·ÎºÎÅÍ Áï¼®¿¡¼­ µ¹·ÁÁÖ¾îÁý´Ï´Ù. Åë»ó, µ¹·ÁÁÖ¾îÁö´Â °ªÀº ½Ç·ºÅÍÀÇ wakeup ¸Þ¼Òµå°¡ ºÒ·Á °¡´Â °æ¿ì¿Í °°ÀÌ, Á¦·Î ÀÌ¿ÜÀÇ °ªÀÌ µË´Ï´Ù.

Àü¼úÀÇ Á¶°ÇÀÇ ¾î´À °Í¿¡µµ µé¾î¸ÂÁö ¾Ê´Â °æ¿ì, ÀÌ threadÀÇ ¼¼Ä¡±â ½ºÅ×ÀÌÅͽº°¡ ¼³Á¤µË´Ï´Ù.

¿¹¿Ü:
SecurityException - ÇöÀçÀÇ thread°¡ ÀÌ thread¸¦ º¯°æÇÒ ¼ö ¾ø´Â °æ¿ì

interrupted

public static boolean interrupted()
ÇöÀçÀÇ thread°¡ ³¢¾îµé¾îÁö°í ÀÖ´Â Á¦¹ßÀ» Á¶»çÇÕ´Ï´Ù. ÀÌ ¸Þ¼Òµå¿¡ ÀÇÇØ threadÀÇ ¡¸¼¼Ä¡±â ½ºÅ×ÀÌÅͽº¡¹°¡ Ŭ¸®¾î µË´Ï´Ù. Áï, ÀÌ ¸Þ¼Òµå°¡ °è¼ÓÇØ 2 ȸ ºÒ·Á °¬À» °æ¿ì, 2 ¹øÂ°ÀÇ È£ÃâÀº false ¸¦ µ¹·ÁÁÝ´Ï´Ù (ÃÖÃÊÀÇ È£ÃâÀÌ ³¢¾îµé¾î ½ºÅ×ÀÌÅͽº¸¦ Ŭ¸®¾î ÇÑ ÈÄ¿¡, 2 ¹øÂ°ÀÇ È£ÃâÀÌ ±×°ÍÀ» È®ÀÎÇϱâ Àü¿¡ ÇöÀçÀÇ thread°¡ Çѹø ´õ ³¢¾îµé¾îÁ³À» °æ¿ì¸¦ Á¦¿ÜÇÏ´Ù).

¹Ýȯ°ª:
ÇöÀçÀÇ thread°¡ ³¢¾îµé¾îÁö°í ÀÖ´Â °æ¿ì´Â true, ±×·¸Áö ¾ÊÀº °æ¿ì´Â false
°ü·Ã Ç׸ñ:
isInterrupted()

isInterrupted

public boolean isInterrupted()
ÀÌ thread°¡ ³¢¾îµé¾îÁö°í ÀÖ´Â Á¦¹ßÀ» Á¶»çÇÕ´Ï´Ù. ÀÌ ¸Þ¼Òµå¿¡ ÀÇÇØ threadÀÇ ¼¼Ä¡±â ½ºÅ×ÀÌÅͽº°¡ ¿µÇâÀ» ¹ÞÀ» °ÍÀº ¾ø½À´Ï´Ù.

¹Ýȯ°ª:
ÀÌ thread°¡ ³¢¾îµé¾îÁö°í ÀÖ´Â °æ¿ì´Â true, ±×·¸Áö ¾ÊÀº °æ¿ì´Â false
°ü·Ã Ç׸ñ:
interrupted()

destroy

public void destroy()
Ŭ¸° ¾÷À» ½Ç½ÃÇÏÁö ¸»°í ÀÌ thread¸¦ ÆÄ±âÇÕ´Ï´Ù. Àá±Ù ¸ðµç ¸ð´ÏÅͰ¡ ¶ô µÈ ä·Î ÀÖ½À´Ï´Ù. (ÀÌ ¸Þ¼Òµå´Â ±¸ÇöµÇ°í ÀÖÁö ¾Ê½À´Ï´Ù. )


isAlive

public final boolean isAlive()
ÀÌ thread°¡ »ýÁ¸Çϰí ÀÖÀ»Áö ¾î¶³Áö¸¦ ÆÇÁ¤ÇÕ´Ï´Ù. thread°¡ ±âµ¿µÇ°í ÀÖ¾î, ¾ÆÁ÷ Á¾·áµÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì, thread´Â »ýÁ¸Çϰí ÀÖ½À´Ï´Ù.

¹Ýȯ°ª:
ÀÌ thread°¡ »ýÁ¸Çϰí ÀÖ´Â °æ¿ì´Â true, ±×·¸Áö ¾ÊÀº °æ¿ì´Â false

suspend

public final void suspend()
Ãßõ µÇ°í ÀÖÁö ¾Ê½À´Ï´Ù.  ÀÌ ¸Þ¼Òµå´Â µ¥µå ·ÏÀ» ¹ß»ýÇϱ⠽±±â ¶§¹®¿¡ Ãßõ µÇÁö ¾Ê½À´Ï´Ù. Ÿ°Ù thread°¡, Áß¿äÇÑ system resource¸¦ º¸È£Çϰí ÀÖ´Â ¸ð´ÏÅÍÀÇ ¶ôÀ» º¸°ü À¯ÁöÇϰí ÀÖ´Â »óÅ·ΠÁߴܵǾúÀ» °æ¿ì, Ÿ°Ù thread°¡ Àç°³µÉ ¶§±îÁö ¾î´À threadµµ ÀÌ ¸®¼Ò½º¿¡ ¾×¼¼½º ÇÒ ¼ö ¾ø½À´Ï´Ù. Ÿ°Ù thread¸¦ Àç°³ÇÏ·Á°í ÇÏ´Â thread°¡,resume ¸¦ È£ÃâÇϱâ Àü¿¡ ÀÌ ¸ð´ÏÅ͸¦ Àá±×·Á°í Çϸé(ÀÚ), µ¥µå ·ÏÀÌ ¹ß»ýÇÕ´Ï´Ù. Åë»ó, ±×·¯ÇÑ µ¥µå ·ÏÀº ÀÚ½ÅÀ» ¡¸´Ù¿î ´çÇß´Ù¡¹ÇÁ·Î¼¼½º·Î¼­ Ç¥¸íÇÕ´Ï´Ù. ÀÚ¼¼ÇÑ °ÍÀº ¡¸Thread.stop, Thread.suspend, ¹× Thread.resume °¡ Ãßõ µÇÁö ¾Ê´Â ÀÌÀ¯¡¹¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä.

ÀÌ thread¸¦ Áß´ÜÇÕ´Ï´Ù.

¿ì¼±, ÀÌ threadÀÇ checkAccess ¸Þ¼Òµå°¡, Àμö¾øÀÌ ºÒ·Á °©´Ï´Ù. ÀÌ °á°ú, (ÇöÀçÀÇ thread³»¿¡¼­) SecurityException °¡ ½½·Î¿ì µÇ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù.

thread´Â »ýÁ¸Çϰí ÀÖ´Â °æ¿ì¿¡ ÁߴܵǾî Àç°³µÇÁö ¾Ê´Â 󸮸¦ ¸ÕÀú ÁøÇàÇÒ ¼ö ¾ø½À´Ï´Ù.

¿¹¿Ü:
SecurityException - ÇöÀçÀÇ thread°¡ ÀÌ thread¸¦ º¯°æÇÒ ¼ö ¾ø´Â °æ¿ì
°ü·Ã Ç׸ñ:
checkAccess()

resume

public final void resume()
Ãßõ µÇ°í ÀÖÁö ¾Ê½À´Ï´Ù.  ÀÌ ¸Þ¼Òµå´Â µ¥µå ·ÏÀ» ¹ß»ýÇϱ⠽±±â ¶§¹®¿¡ Ãßõ µÇÁö ¾Ê½À´Ï´Ù. suspend() ¿Í ÇÔ²² »ç¿ëÇϱâ À§ÇØ(¶§¹®¿¡)ÀÎ ¸¸Å­ Á¦°øµÇ°í ÀÖ½À´Ï´Ù. ÀÚ¼¼ÇÑ °ÍÀº ¡¸Thread.stop, Thread.suspend, ¹× Thread.resume °¡ Ãßõ µÇÁö ¾Ê´Â ÀÌÀ¯¡¹¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä.

Áß´ÜµÈ thread¸¦ Àç°³ÇÕ´Ï´Ù.

¿ì¼±, ÀÌ threadÀÇ checkAccess ¸Þ¼Òµå°¡, Àμö¾øÀÌ ºÒ·Á °©´Ï´Ù. ÀÌ °á°ú, (ÇöÀçÀÇ thread³»¿¡¼­) SecurityException °¡ ½½·Î¿ì µÇ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù.

thread´Â »ýÁ¸Çϰí ÀÖÁö¸¸ Áߴܵǰí ÀÖ´Â °æ¿ì, ½ÇÇàÀÌ Àç°³µÇ¾î 󸮸¦ ¸ÕÀú ÁøÇàÇÏ´Â °ÍÀÌ Çã°¡µË´Ï´Ù.

¿¹¿Ü:
SecurityException - ÇöÀçÀÇ thread°¡ ÀÌ thread¸¦ º¯°æÇÒ ¼ö ¾ø´Â °æ¿ì
°ü·Ã Ç׸ñ:
checkAccess() , suspend()

setPriority

public final void setPriority(int newPriority)
ÀÌ threadÀÇ ¿ì¼± ¼øÀ§¸¦ º¯°æÇÕ´Ï´Ù.

¿ì¼±, ÀÌ threadÀÇ checkAccess ¸Þ¼Òµå°¡, Àμö¾øÀÌ ºÒ·Á °©´Ï´Ù. ÀÌ °á°ú,SecurityException °¡ ½½·Î¿ì µÇ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù.

±×·¸Áö ¾ÊÀº °æ¿ì, ÀÌ threadÀÇ ¿ì¼± ¼øÀ§´Â ÁöÁ¤µÈ newPriority ¿Í threadÀÇ thread ±×·ìÀÇ ÃÖ°í Çã¿ë ¿ì¼± ¼øÀ§ ÁßÀÇ ¾î´À ÂÊÀÎÁö ÀÛÀº (ºÐ)ÆíÀ¸·Î ¼³Á¤µË´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
newPriority - ÀÌ thread¸¦ ¼³Á¤ÇÏ´Â ¿ì¼± ¼øÀ§
¿¹¿Ü:
IllegalArgumentException - ¿ì¼± ¼øÀ§°¡ MIN_PRIORITY ~ MAX_PRIORITY ÀÇ ¹üÀ§¿ÜÀÎ °æ¿ì
SecurityException - ÇöÀçÀÇ thread°¡ ÀÌ thread¸¦ º¯°æÇÒ ¼ö ¾ø´Â °æ¿ì
°ü·Ã Ç׸ñ:
getPriority() , checkAccess() , getPriority() , getThreadGroup() , MAX_PRIORITY , MIN_PRIORITY , ThreadGroup.getMaxPriority()

getPriority

public final int getPriority()
ÀÌ threadÀÇ ¿ì¼± ¼øÀ§¸¦ µ¹·ÁÁÝ´Ï´Ù.

¹Ýȯ°ª:
ÀÌ threadÀÇ ¿ì¼± ¼øÀ§
°ü·Ã Ç׸ñ:
setPriority(int) , setPriority(int)

setName

public final void setName(String  name)
ÀÌ threadÀÇ À̸§À» Àμö name ¿¡ µ¿ÀÏÇØÁöµµ·Ï(µíÀÌ) º¯°æÇÕ´Ï´Ù.

¿ì¼±, ÀÌ threadÀÇ checkAccess ¸Þ¼Òµå°¡, Àμö¾øÀÌ ºÒ·Á °©´Ï´Ù. ÀÌ °á°ú,SecurityException °¡ ½½·Î¿ì µÇ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
name - ÀÌ threadÀÇ »õ·Î¿î À̸§
¿¹¿Ü:
SecurityException - ÇöÀçÀÇ thread°¡ ÀÌ thread¸¦ º¯°æÇÒ ¼ö ¾ø´Â °æ¿ì
°ü·Ã Ç׸ñ:
getName() , checkAccess() , getName()

getName

public final String  getName()
ÀÌ threadÀÇ À̸§À» µ¹·ÁÁÝ´Ï´Ù.

¹Ýȯ°ª:
ÀÌ threadÀÇ À̸§
°ü·Ã Ç׸ñ:
setName(java.lang.String) , setName(java.lang.String)

getThreadGroup

public final ThreadGroup  getThreadGroup()
ÀÌ thread°¡ ¼Ò¼ÓÇÏ´Â thread ±×·ìÀ» µ¹·ÁÁÝ´Ï´Ù. ÀÌ thread°¡ Á¾·áµÇ°í ÀÖ´Â (Á¤ÁöµÇ°í ÀÖ´Ù) °æ¿ì, ÀÌ ¸Þ¼Òµå´Â null ¸¦ µ¹·ÁÁÝ´Ï´Ù.

¹Ýȯ°ª:
ÀÌ threadÀÇ thread ±×·ì

activeCount

public static int activeCount()
ÇöÇà threadÀÇ thread ±×·ì³»ÀÇ ¾×ƼºêÇÑ thread¼ö¸¦ µ¹·ÁÁÝ´Ï´Ù.

¹Ýȯ°ª:
ÇöÇà threadÀÇ thread ±×·ì³»ÀÇ ¾×ƼºêÇÑ thread¼ö

enumerate

public static int enumerate(Thread [] tarray)
ÇöÇà threadÀÇ thread ±×·ì ¹× ±× ÇÏÀ§ ±×·ì³»ÀÇ ¸ðµç ¾×ƼºêÇÑ thread¸¦, ÁöÁ¤µÈ ¹è¿­¿¡ Ä«ÇÇÇÕ´Ï´Ù. ÀÌ ¸Þ¼Òµå´Â ÇöÇà threadÀÇ thread ±×·ìÀÇ enumerate ¸Þ¼Òµå¸¦, ¹è¿­ Àμö¸¦ ÁöÁ¤ÇØ È£ÃâÇÒ »ÓÀÔ´Ï´Ù.

½ÃÅ¥·¯Æ¼ ¸Å´ÏÀú°¡ Á¸ÀçÇÏ´Â °æ¿ì,enumerate ¸Þ¼Òµå´Â thread ±×·ìÀ» Àμö·Î¼­ ½ÃÅ¥·¯Æ¼ ¸Å´ÏÀúÀÇ checkAccess ¸Þ¼Òµå¸¦ È£ÃâÇÕ´Ï´Ù. ÀÌ °á°ú,SecurityException °¡ ½½·Î¿ì µÇ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
tarray - Thread ¿ÀºêÁ§Æ®ÀÇ Ä«ÇÇó ¹è¿­
¹Ýȯ°ª:
¹è¿­¿¡ ÀúÀåµÇ´Â thread¼ö
¿¹¿Ü:
SecurityException - ½ÃÅ¥·¯Æ¼ ¸Å´ÏÀú°¡ Á¸ÀçÇØ, ½ÃÅ¥·¯Æ¼ ¸Å´ÏÀúÀÇ checkAccess ¸Þ¼Òµå°¡ ÀÌ Á¶ÀÛÀ» Çã°¡ÇÏÁö ¾Ê´Â °æ¿ì
°ü·Ã Ç׸ñ:
ThreadGroup.enumerate(java.lang.Thread[]) , SecurityManager.checkAccess(java.lang.ThreadGroup)

countStackFrames

public int countStackFrames()
Ãßõ µÇ°í ÀÖÁö ¾Ê½À´Ï´Ù.  ÀÌ È£ÃâÀÇ Á¤ÀÇ´Â Ãßõ µÇÁö ¾Ê´Â suspend() ¿¡ ÀÇÁ¸ÇÕ´Ï´Ù. ¶Ç, ÀÌ È£ÃâÀÇ °á°ú´Â ÇÁ·ÎÅØ¼ÇµÇÁö ¾Ê½À´Ï´Ù.

ÀÌ thread³»ÀÇ ½ºÅà ÇÁ·¹ÀÓ¼ö¸¦ Ä«¿îÆ® ÇÕ´Ï´Ù. thread´Â Áß´ÜµÉ Çʿ䰡 ÀÖ½À´Ï´Ù.

¹Ýȯ°ª:
ÀÌ thread³»ÀÇ ½ºÅà ÇÁ·¹ÀÓÀÇ ¼ö
¿¹¿Ü:
IllegalThreadStateException - ÀÌ thread°¡ ÁߴܵÇÁö ¾Ê´Â °æ¿ì

join

public final void join(long millis)
                throws InterruptedException 
ÀÌ thread°¡ Á¾·áÇÏ´Â °ÍÀ», ÃÖ°í·Î millis ¹Ð¸® ¼¼ÄÁµå ´ë±âÇÕ´Ï´Ù. 0 ÀÇ Å¸ÀÓ ¾Æ¿ôÀº ¿µ¿øÈ÷ ´ë±âÇÏ´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
millis - ¹Ð¸® ¼¼ÄÁµå ´ÜÀ§ÀÇ ´ë±â ½Ã°£
¿¹¿Ü:
InterruptedException - º°ÀÇ thread°¡ ÇöÀçÀÇ thread¿¡ ³¢¾îµé¾úÀ» °æ¿ì. ÀÌ ¿¹¿Ü°¡ ½½·Î¿ì µÇ¸é(ÀÚ), ÇöÀçÀÇ threadÀÇ ¼¼Ä¡±â ½ºÅ×ÀÌÅͽº´Â Ŭ¸®¾î µÈ´Ù

join

public final void join(long millis,
                       int nanos)
                throws InterruptedException 
ÃÖ°í·Î millis ¹Ð¸® ¼¼ÄÁµå¿¡ nanos ³ª³ëÃʸ¦ °¡»êÇÑ »çÀÌ, ÀÌ thread°¡ Á¾·áÇÏ´Â °ÍÀ» ´ë±âÇÕ´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
millis - ¹Ð¸® ¼¼ÄÁµå ´ÜÀ§ÀÇ ´ë±â ½Ã°£
nanos - ´ë±âÇϱâ À§ÇÑ 0 ~ 999999 ÀÇ Ãß°¡ ³ª³ëÃÊ
¿¹¿Ü:
IllegalArgumentException - millis ÀÇ °ªÀÌ À½¼öÀÇ °æ¿ì, ¶Ç´Â nanos ÀÇ °ªÀÌ 0 ~ 999999 ÀÇ ¹üÀ§¿ÜÀÇ °æ¿ì
InterruptedException - º°ÀÇ thread°¡ ÇöÀçÀÇ thread¿¡ ³¢¾îµé¾úÀ» °æ¿ì. ÀÌ ¿¹¿Ü°¡ ½½·Î¿ì µÇ¸é(ÀÚ), ÇöÀçÀÇ threadÀÇ ¼¼Ä¡±â ½ºÅ×ÀÌÅͽº´Â Ŭ¸®¾î µÈ´Ù

join

public final void join()
                throws InterruptedException 
ÀÌ thread°¡ Á¾·áÇÏ´Â °ÍÀ» ´ë±âÇÕ´Ï´Ù.

¿¹¿Ü:
InterruptedException - º°ÀÇ thread°¡ ÇöÀçÀÇ thread¿¡ ³¢¾îµé¾úÀ» °æ¿ì. ÀÌ ¿¹¿Ü°¡ ½½·Î¿ì µÇ¸é(ÀÚ), ÇöÀçÀÇ threadÀÇ ¼¼Ä¡±â ½ºÅ×ÀÌÅͽº´Â Ŭ¸®¾î µÈ´Ù

dumpStack

public static void dumpStack()
ÇöÀçÀÇ threadÀÇ ½ºÅà Ʈ·¹À̽º¸¦ Ãâ·ÂÇÕ´Ï´Ù. ÀÌ ¸Þ¼Òµå´Â µð¹ö±×ÀÇ °æ¿ì¿¡¸¸ »ç¿ëÇÕ´Ï´Ù.

°ü·Ã Ç׸ñ:
Throwable.printStackTrace()

setDaemon

public final void setDaemon(boolean on)
ÀÌ thread¸¦, demon thread ¶Ç´Â À¯Àú thread·Î¼­ ¸¶Å© ÇÕ´Ï´Ù. Java °¡»ó ¸Ó½ÅÀº ½ÇÇàÁßÀÇ thread°¡ demon thread¸¸À¸·Î µÇ¸é(ÀÚ) Á¾·áÇÕ´Ï´Ù.

ÀÌ ¸Þ¼Òµå´Â thread ±âµ¿Àü¿¡ È£ÃâÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.

ÀÌ ¸Þ¼Òµå´Â Àμö¾øÀÌ ÀÌ threadÀÇ checkAccess ¸Þ¼Òµå¸¦ È£ÃâÇÕ´Ï´Ù. ÀÌ °á°ú, ÇöÀçÀÇ thread·Î SecurityException °¡ ½½·Î¿ì µÇ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
on - true ÀÇ °æ¿ì, ÀÌ thread¸¦ demon thread·Î¼­ ¸¶Å© ÇÑ´Ù
¿¹¿Ü:
IllegalThreadStateException - ÀÌ thread°¡ ¾×ƼºêÇÑ °æ¿ì
SecurityException - ÇöÀçÀÇ thread°¡ ÀÌ thread¸¦ º¯°æÇÒ ¼ö ¾ø´Â °æ¿ì
°ü·Ã Ç׸ñ:
isDaemon() , checkAccess()

isDaemon

public final boolean isDaemon()
ÀÌ thread°¡ demon threadÀÏÁö ¾î¶³Áö¸¦ ÆÇÁ¤ÇÕ´Ï´Ù.

¹Ýȯ°ª:
ÀÌ thread°¡ demon threadÀÎ °æ¿ì´Â true, ±×·¸Áö ¾ÊÀº °æ¿ì´Â false
°ü·Ã Ç׸ñ:
setDaemon(boolean)

checkAccess

public final void checkAccess()
ÇöÀç ½ÇÇàÁßÀÇ thread°¡, ÀÌ thread¸¦ º¯°æÇϱâ À§ÇÑ ¾×¼¼½º±ÇÀ» °¡Áö°í ÀÖÀ»Áö ¾î¶³Áö¸¦ ÆÇÁ¤ÇÕ´Ï´Ù.

½ÃÅ¥·¯Æ¼ ¸Å´ÏÀú°¡ Á¸ÀçÇÏ´Â °æ¿ì, ÀÌ thread°¡ ±× Àμö·Î ÁöÁ¤µÇ¾î checkAccess ¸Þ¼Òµå°¡ ºÒ·Á °©´Ï´Ù. ÀÌ °á°ú,SecurityException °¡ ½½·Î¿ì µÇ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù.

ÁÖ: ÀÌ ¸Þ¼Òµå°¡ JDK 1.1 ¿¡¼­´Â final °¡ ¾Æ´Ï¾ú´ø °ÍÀº À߸øÀÔ´Ï´Ù. Java 2 Ç÷§Æû¿¡¼­´Â final °¡ µÇ¾î ÀÖ½À´Ï´Ù.

¿¹¿Ü:
SecurityException - ÇöÀçÀÇ thread°¡ ÀÌ thread¿¡ÀÇ ¾×¼¼½º°¡ ¿ë¼­µÇÁö ¾ÊÀº °æ¿ì
°ü·Ã Ç׸ñ:
SecurityManager.checkAccess(java.lang.Thread)

toString

public String  toString()
threadÀÇ À̸§, ¿ì¼± ¼øÀ§, thread ±×·ìÀ» Æ÷ÇÔÇÑ ÀÌ threadÀÇ Ä³¸¯ÅÍ ¶óÀΠǥÇöÀ» µ¹·ÁÁÝ´Ï´Ù.

¿À¹ö¶óÀ̵å(override):
Ŭ·¡½º Object ³»ÀÇ toString
¹Ýȯ°ª:
ÀÌ threadÀÇ Ä³¸¯ÅÍ ¶óÀΠǥÇö

getContextClassLoader

public ClassLoader  getContextClassLoader()
ÀÌ Thread ÀÇ ¹®¸Æ ClassLoader ¸¦ µ¹·ÁÁÝ´Ï´Ù. ¹®¸Æ ClassLoader ´Â Ŭ·¡½º ¹× ¸®¼Ò½º¸¦ ·ÎµåÇÒ ¶§, ÀÌ thread·Î ½ÇÇàÁßÀÇ Äڵ尡 »ç¿ëÇϱâ À§Çؼ­ threadÀÇ ÀÛ¼º Ãø¿¡¾ß´Â Á¦°øµË´Ï´Ù. ¹®¸Æ ClassLoader °¡ ¼³Á¤µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì, µðÆúÆ®¿¡¼­´Â Ä£ Thread ÀÇ ClassLoader ¹®¸ÆÀÌ µË´Ï´Ù. Åë»ó, Ä£threadÀÇ ¹®¸Æ ClassLoader ´Â ¾îÇø®ÄÉÀ̼ÇÀÇ ·Îµå¿¡ »ç¿ëµÇ´Â Ŭ·¡½º ·Î´õ·Î ¼³Á¤µË´Ï´Ù.

½ÃÅ¥·¯Æ¼ ¸Å´ÏÀú°¡ Á¸ÀçÇÏ´Â °æ¿ì, È£ÃâÃøÀÇ Å¬·¡½º ·Î´õ°¡ null ´Â ¾Æ´Ï°í, ¹®¸Æ Ŭ·¡½º ·Î´õ°¡ ¿ä±¸µÇ°í ÀÖ´Â threadÀÇ ¹®¸Æ Ŭ·¡½º ·Î´õ¿Í °°Áö ¾Ê°í ±× ¹®¸Æ Ŭ·¡½º ·Î´õÀÇ »óÀ§ ¿ÀºêÁ§Æ®µµ ¾Æ´Ò ¶§´Â ¹®¸Æ ClassLoader ¸¦ ÃëµæÇØµµ ±¦ÂúÀºÁö ¾î¶²Áö¸¦ È®ÀÎÇϱâ À§Çؼ­,RuntimePermission("getClassLoader") ¾×¼¼½º±ÇÀ» »ç¿ëÇØ, ½ÃÅ¥·¯Æ¼ ¸Å´ÏÀúÀÇ checkPermission ¸Þ¼Òµå°¡ ºÒ·Á °©´Ï´Ù.

¹Ýȯ°ª:
ÀÌ Thread ÀÇ ¹®¸Æ ClassLoader
¿¹¿Ü:
SecurityException - ½ÃÅ¥·¯Æ¼ ¸Å´ÏÀú°¡ Á¸ÀçÇØ, ½ÃÅ¥·¯Æ¼ ¸Å´ÏÀúÀÇ checkPermission ¸Þ¼Òµå°¡ ¹®¸Æ ClassLoader ÀÇ ÃëµæÀ» Çã°¡ÇÏÁö ¾Ê´Â °æ¿ì
µµÀÔµÈ ¹öÁ¯:
1.2
°ü·Ã Ç׸ñ:
setContextClassLoader(java.lang.ClassLoader) , SecurityManager.checkPermission(java.security.Permission) , RuntimePermission

setContextClassLoader

public void setContextClassLoader(ClassLoader  cl)
ÀÌ Thread ÀÇ ¹®¸Æ ClassLoader ¸¦ ¼³Á¤ÇÕ´Ï´Ù. ¹®¸Æ ClassLoader ´Â threadÀÇ ÀÛ¼º½Ã·Î ¼³Á¤µÇ¾î À̰Ϳ¡ ÀÇÇØ threadÀÇ ÀÛ¼ºÃøÀº Ŭ·¡½º ¹× ¸®¼Ò½ºÀÇ ·Îµå½Ã¿¡ thread·Î ½ÇÇàÁßÀÇ Äڵ忡 ÀûÀýÇÑ Å¬·¡½º ·Î´õ¸¦ Á¦°øÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù.

½ÃÅ¥·¯Æ¼ ¸Å´ÏÀú°¡ Á¸ÀçÇÏ´Â °æ¿ì, ÃÖÃÊ·Î, ¹®¸Æ ClassLoader ¸¦ ¼³Á¤Çصµ ÁÁÀºÁö ¾î¶²Áö¸¦ Á¶»çÇϱâ À§Çؼ­(¶§¹®¿¡) RuntimePermission("setContextClassLoader") ¾×¼¼½º±ÇÀ» »ç¿ëÇØ checkPermission ¸Þ¼Òµå°¡ ºÒ·Á °©´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
cl - ÀÌ Thread ÀÇ ¹®¸Æ ClassLoader
¿¹¿Ü:
SecurityException - ÇöÀçÀÇ thread°¡ ¹®¸Æ ClassLoader ¸¦ ¼³Á¤ÇÒ ¼ö ¾ø´Â °æ¿ì
µµÀÔµÈ ¹öÁ¯:
1.2
°ü·Ã Ç׸ñ:
getContextClassLoader() , SecurityManager.checkPermission(java.security.Permission) , RuntimePermission

holdsLock

public static boolean holdsLock(Object  obj)
ÇöÇà thread°¡ ÁöÁ¤µÈ ¿ÀºêÁ§Æ®¿¡ ´ëÇÑ ¸ð´ÏÅÍ ¶ôÀ» º¸°ü À¯ÁöÇÏ´Â °æ¿ì¿¡°Ô¸¸,true ¸¦ µ¹·ÁÁÝ´Ï´Ù.

ÀÌ ¸Þ¼Òµå´Â ÀÌÇÏ¿Í °°ÀÌ, ÇÁ·Î±×·¥ÀÌ, ÇöÇà thread°¡ ÁöÁ¤µÈ ¶ôÀ» ¹ú½á º¸°ü À¯ÁöÇϰí ÀÖ´Â °ÍÀ» ³ªÅ¸³¾ ¶§¿¡ »ç¿ëµË´Ï´Ù.

     assert Thread.holdsLock(obj);
 

ÆÄ¶ó¹ÌÅÍ:
obj - ¼ÒÀ¯±ÇÀÇ ¶ôÀ» Å×½ºÆ®ÇÏ´Â ¿ÀºêÁ§Æ®
¹Ýȯ°ª:
ÇöÇà thread°¡ ÁöÁ¤µÈ ¿ÀºêÁ§Æ®¿¡ ´ëÇÑ ¸ð´ÏÅÍ ¶ôÀ» º¸°ü À¯ÁöÇÏ´Â °æ¿ì,true °¡ µ¹·ÁÁÖ¾îÁø´Ù
¿¹¿Ü:
NullPointerException - obj °¡ null ÀÇ °æ¿ì
µµÀÔµÈ ¹öÁ¯:
1.4

JavaTM 2
Platform
Std.  Ed.  v1. 4.0

¹ö±×ÀÇ º¸°í¿Í ±â´ÉÀÇ ¸®Äù½ºÆ®
ÀÌ¿ÜÀÇ API ·¹ÆÛ·±½º ¹× °³¹ßÀÚ¿ë ¹®¼­¿¡ ´ëÇØ¼­´Â Java 2 SDK SE °³¹ßÀÚ¿ë ¹®¼­¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä. °³¹ßÀÚÀü¿ëÀÇ »ó¼¼ÇÑ ÇØ¼³, °³³äÀÇ °³¿ä, ¿ë¾îÀÇ Á¤ÀÇ, ¹ö±×ÀÇ È¸ÇÇÃ¥, ¹× ÄÚµå ½Ç·Ê°¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù.

Java, Java 2 D, ¹× JDBC ´Â ¹Ì±¹ ¹× ±× ¿ÜÀÇ ³ª¶ó¿¡ À־ÀÇ ¹Ì±¹ Sun Microsystems, Inc. ÀÇ »óÇ¥ ȤÀº µî·Ï»óÇ¥ÀÔ´Ï´Ù.
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.