|
JavaTM 2 Platform Std. Ed. v1. 4.0 |
||||||||||
ÀüÀÇ Å¬·¡½º ´ÙÀ½ÀÇ Å¬·¡½º | ÇÁ·¹ÀÓ ÀÖ¾î ÇÁ·¹ÀÓ ¾øÀ½ | ||||||||||
°³¿ä: »óÀÚ | Çʵå | constructor | ¸Þ¼Òµå | »ó¼¼: Çʵå | constructor | ¸Þ¼Òµå |
java.lang.Object | +--java.lang.Thread
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¸¦ °è¼Ó ½ÇÇàÇÕ´Ï´Ù.
Runtime
Ŭ·¡½ºÀÇ exit
¸Þ¼Òµå°¡ ºÒ·Á °¡ ½ÃÅ¥·¯Æ¼ ¸Å´ÏÀú°¡ exit µ¿ÀÛÀ» Çã°¡ÇßÀ» °æ¿ì
run
¸Þ¼ÒµåÀÇ È£Ãâ·ÎºÎÅÍ º¹±ÍÇÏ´Â °Í¿¡ ÀÇÇØ, ¶Ç´Â run
¸Þ¼Òµå Àܷ̿κÎÅÍ º¸³»Áö´Â ¿¹¿Ü¸¦ ½½·Î¿ì ÇÏ´Â °Í¿¡ ÀÇÇØ, demon thread´Â ¾Æ´Ñ ¸ðµç 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¿¡´Â »õ·Î¿î À̸§ÀÌ »ý¼ºµË´Ï´Ù.
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 |
ÇʵåÀÇ »ó¼¼ |
public static final int MIN_PRIORITY
public static final int NORM_PRIORITY
public static final int MAX_PRIORITY
»ý¼ºÀÚÀÇ »ó¼¼ |
public Thread()
Thread
¿ÀºêÁ§Æ®¸¦ ÇÒ´çÇÕ´Ï´Ù. ÀÌ constructor Àº Thread(null, null,
gname)
¿Í °°Àº È¿°ú¸¦ °¡Áý´Ï´Ù. ÀÌ °æ¿ì,gname ´Â »õ·Ó°Ô ÀÛ¼ºµÇ´Â À̸§ÀÔ´Ï´Ù. ÀÚµ¿ÀûÀ¸·Î ÀÛ¼ºµÇ´Â À̸§Àº n ¸¦ Á¤¼ö·Î Çϸé(ÀÚ) "Thread-"+
n ÀÇ Çü½ÄÀ» ÃëÇÕ´Ï´Ù.
Thread(java.lang.ThreadGroup, java.lang.Runnable, java.lang.String)
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)
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)
public Thread(String name)
Thread
¿ÀºêÁ§Æ®¸¦ ÇÒ´çÇÕ´Ï´Ù. ÀÌ constructor Àº Thread(null, null, name)
¿Í °°Àº È¿°ú¸¦ °¡Áý´Ï´Ù.
name
- »õ·Î¿î threadÀÇ À̸§Thread(java.lang.ThreadGroup, java.lang.Runnable, java.lang.String)
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)
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)
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)
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¸¦ ÀÛ¼ºÇÒ ¼ö ¾ø´Â °æ¿ì¸Þ¼ÒµåÀÇ »ó¼¼ |
public static Thread currentThread()
public static void yield()
public static void sleep(long millis) throws InterruptedException
millis
- ¹Ð¸® ¼¼ÄÁµå ´ÜÀ§ÀÇ sleeve ½Ã°£ÀÇ ±æÀÌ
InterruptedException
- º°ÀÇ thread°¡ ÇöÀçÀÇ thread¿¡ ³¢¾îµé¾úÀ» °æ¿ì. ÀÌ ¿¹¿Ü°¡ ½½·Î¿ì µÇ¸é(ÀÚ), ÇöÀçÀÇ threadÀÇ ¼¼Ä¡±â ½ºÅ×ÀÌÅͽº´Â Ŭ¸®¾î µÇ´ÂObject.notify()
public static void sleep(long millis, int nanos) throws InterruptedException
millis
- ¹Ð¸® ¼¼ÄÁµå ´ÜÀ§ÀÇ sleeve ½Ã°£ÀÇ ±æÀÌnanos
- sleeveÇϱâ À§ÇÑ 0 ~ 999999 ÀÇ Ãß°¡ ³ª³ëÃÊ
IllegalArgumentException
- millis ÀÇ °ªÀÌ À½¼öÀÇ °æ¿ì, ¶Ç´Â nanos ÀÇ °ªÀÌ 0 ~ 999999 ÀÇ ¹üÀ§¿ÜÀÇ °æ¿ì
InterruptedException
- º°ÀÇ thread°¡ ÇöÀçÀÇ thread¿¡ ³¢¾îµé¾úÀ» °æ¿ì. ÀÌ ¿¹¿Ü°¡ ½½·Î¿ì µÇ¸é(ÀÚ), ÇöÀçÀÇ threadÀÇ ¼¼Ä¡±â ½ºÅ×ÀÌÅͽº´Â Ŭ¸®¾î µÇ´ÂObject.notify()
public void start()
run
¸Þ¼Òµå¸¦ È£ÃâÇÕ´Ï´Ù.
±× °á°ú, (start
¸Þ¼Òµå¿¡ÀÇ È£Ãâ·ÎºÎÅÍ º¹±ÍÇÑ´Ù) ÇöÀçÀÇ thread¿Í (±× run
¸Þ¼Òµå¸¦ ½ÇÇàÇÑ´Ù) ´Ù¸¥ thread¶ó°í ÇÏ´Â 2 °³ÀÇ thread°¡ º´·Ä¿¡ ½ÇÇàµË´Ï´Ù.
IllegalThreadStateException
- thread°¡ ¹ú½á ±âµ¿Çϰí ÀÖ¾úÀ» °æ¿ìrun()
,
stop()
public void run()
Runnable
½ÇÇà ¿ÀºêÁ§Æ®¸¦ »ç¿ëÇØ ÀÛ¼ºµÇ¾úÀ» °æ¿ì, ±× Runnable
¿ÀºêÁ§Æ®ÀÇ run
¸Þ¼Òµå°¡ ºÒ·Á °©´Ï´Ù. ±×·¸Áö ¾ÊÀº °æ¿ì, ÀÌ ¸Þ¼Òµå´Â ¾Æ¹«°Íµµ ½Ç½ÃÇÏÁö ¾Ê°í º¹±ÍÇÕ´Ï´Ù.
Thread
ÀÇ ¼ºê Ŭ·¡½º´Â ÀÌ ¸Þ¼Òµå¸¦ ¿À¹ö¶óÀ̵å(override) ÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.
Runnable
³»ÀÇ run
start()
,
stop()
,
Thread(java.lang.ThreadGroup, java.lang.Runnable, java.lang.String)
,
Runnable.run()
public final void stop()
ThreadDeath
¿¹¿Ü°¡ ½ºÅþƷ¡¿¡¼ À§¿¡°Ô ÀüÇÒ ¼ö ÀÖ¾ú´ø °á°ú, ±× thread¿¡ ÀÇÇØ ¶ô µÇ°í ÀÖ´ø ¸ð´ÏÅÍÀÇ ¶ôÀÌ ¸ðµÎ ÇØÁ¦µË´Ï´Ù. ÀÌ·¯ÇÑ ¸ð´ÏÅÍ¿¡ ÀÇÇØ Á÷Àü±îÁö º¸È£µÇ°í ÀÖ´ø ¿ÀºêÁ§Æ®°¡ Á¤ÇÕ¼ºÀÇ ¾ø´Â »óÅ¿¡ ÀÖ¾úÀ» °æ¿ì, ¸Á°¡Áø ¿ÀºêÁ§Æ®´Â ´Ù¸¥ thread¿¡ ´ëÇØ¼ °¡½Ã°¡ µÇ¾î, µ¿ÀÛÀÌ ÇÁ·ÎÅØ¼ÇµÇÁö ¾Ê´Â °ÍÀÌ ÀÖ½À´Ï´Ù. ¸¹Àº °æ¿ì, Ÿ°Ù threadÀÇ ½ÇÇà Á¤Áö¸¦ Áö½ÃÇÏ·Á¸é ,stop
´Â ¾Æ´Ï°í, ´ÜÁö ÀϺÎÀÇ º¯¼ö¸¦ º¯°æÇÏ´Â Äڵ带 »ç¿ëÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. Ÿ°Ù thread´Â ÀÌ º¯¼ö¸¦ Á¤±âÀûÀ¸·Î Ã¼Å©ÇØ, º¯¼ö°¡ ½ÇÇà Á¤Áö¸¦ Áö½ÃÇϰí ÀÖ´Â °æ¿ì´Â run ¸Þ¼Òµå·ÎºÎÅÍ ÀûÀýÈ÷ º¹±ÍÇÕ´Ï´Ù. Á¶°Ç º¯¼öµîÀ¸·Î Ÿ°Ù thread°¡ ¿À·§µ¿¾È ´ë±âÇϰí ÀÖ´Â °æ¿ì, ´ë±â¸¦ ÁߴܽÃŰ·Á¸é ,interrupt
¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù. ÀÚ¼¼ÇÑ °ÍÀº ¡¸Thread.stop, Thread.suspend, ¹× Thread.resume °¡ Ãßõ µÇÁö ¾Ê´Â ÀÌÀ¯¡¹¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
½ÃÅ¥·¯Æ¼ ¸Å´ÏÀú°¡ ÀνºÅç µÇ°í ÀÖ´Â °æ¿ì,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)
public final void stop(Throwable obj)
stop()
(Àμö ¾øÀ½)¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä. °Ô´Ù°¡ ÀÌ ¸Þ¼Òµå´Â Ÿ°Ù thread·Î ó¸®ÀÇ Áغñ°¡ µÇ¾î ÀÖÁö ¾ÊÀº ¿¹¿ÜÀÇ »ý¼º¿¡ »ç¿ëµÇ´Â ÀÏÀÌ ÀÖ´Â Á¡¿¡¼µµ À§ÇèÇÕ´Ï´Ù (ÀÌ ¸Þ¼Òµå°¡ ¾øÀ¸¸é thread¿¡ ÀÇÇØ ½½·Î¿ì µÉ¸®°¡ ¾ø´Â üũµÈ ¿¹¿Ü µî). ÀÚ¼¼ÇÑ °ÍÀº ¡¸Thread.stop, Thread.suspend, ¹× Thread.resume °¡ Ãßõ µÇÁö ¾Ê´Â ÀÌÀ¯¡¹¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
½ÃÅ¥·¯Æ¼ ¸Å´ÏÀú°¡ ÀνºÅç µÇ°í ÀÖ´Â °æ¿ì, ½ÃÅ¥·¯Æ¼ ¸Å´ÏÀúÀÇ 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)
public void interrupt()
ÀÌ 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¸¦ º¯°æÇÒ ¼ö ¾ø´Â °æ¿ìpublic static boolean interrupted()
true
, ±×·¸Áö ¾ÊÀº °æ¿ì´Â false
isInterrupted()
public boolean isInterrupted()
true
, ±×·¸Áö ¾ÊÀº °æ¿ì´Â false
interrupted()
public void destroy()
public final boolean isAlive()
true
, ±×·¸Áö ¾ÊÀº °æ¿ì´Â false
public final void suspend()
resume
¸¦ È£ÃâÇϱâ Àü¿¡ ÀÌ ¸ð´ÏÅ͸¦ Àá±×·Á°í Çϸé(ÀÚ), µ¥µå ·ÏÀÌ ¹ß»ýÇÕ´Ï´Ù. Åë»ó, ±×·¯ÇÑ µ¥µå ·ÏÀº ÀÚ½ÅÀ» ¡¸´Ù¿î ´çÇß´Ù¡¹ÇÁ·Î¼¼½º·Î¼ Ç¥¸íÇÕ´Ï´Ù. ÀÚ¼¼ÇÑ °ÍÀº ¡¸Thread.stop, Thread.suspend, ¹× Thread.resume °¡ Ãßõ µÇÁö ¾Ê´Â ÀÌÀ¯¡¹¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
¿ì¼±, ÀÌ threadÀÇ checkAccess
¸Þ¼Òµå°¡, Àμö¾øÀÌ ºÒ·Á °©´Ï´Ù. ÀÌ °á°ú, (ÇöÀçÀÇ thread³»¿¡¼) SecurityException
°¡ ½½·Î¿ì µÇ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù.
thread´Â »ýÁ¸Çϰí ÀÖ´Â °æ¿ì¿¡ ÁߴܵǾî Àç°³µÇÁö ¾Ê´Â 󸮸¦ ¸ÕÀú ÁøÇàÇÒ ¼ö ¾ø½À´Ï´Ù.
SecurityException
- ÇöÀçÀÇ thread°¡ ÀÌ thread¸¦ º¯°æÇÒ ¼ö ¾ø´Â °æ¿ìcheckAccess()
public final void resume()
suspend()
¿Í ÇÔ²² »ç¿ëÇϱâ À§ÇØ(¶§¹®¿¡)ÀÎ ¸¸Å Á¦°øµÇ°í ÀÖ½À´Ï´Ù. ÀÚ¼¼ÇÑ °ÍÀº ¡¸Thread.stop, Thread.suspend, ¹× Thread.resume °¡ Ãßõ µÇÁö ¾Ê´Â ÀÌÀ¯¡¹¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
¿ì¼±, ÀÌ threadÀÇ checkAccess
¸Þ¼Òµå°¡, Àμö¾øÀÌ ºÒ·Á °©´Ï´Ù. ÀÌ °á°ú, (ÇöÀçÀÇ thread³»¿¡¼) SecurityException
°¡ ½½·Î¿ì µÇ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù.
thread´Â »ýÁ¸Çϰí ÀÖÁö¸¸ Áߴܵǰí ÀÖ´Â °æ¿ì, ½ÇÇàÀÌ Àç°³µÇ¾î 󸮸¦ ¸ÕÀú ÁøÇàÇÏ´Â °ÍÀÌ Çã°¡µË´Ï´Ù.
SecurityException
- ÇöÀçÀÇ thread°¡ ÀÌ thread¸¦ º¯°æÇÒ ¼ö ¾ø´Â °æ¿ìcheckAccess()
,
suspend()
public final void setPriority(int newPriority)
¿ì¼±, ÀÌ 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()
public final int getPriority()
setPriority(int)
,
setPriority(int)
public final void setName(String name)
name
¿¡ µ¿ÀÏÇØÁöµµ·Ï(µíÀÌ) º¯°æÇÕ´Ï´Ù.
¿ì¼±, ÀÌ threadÀÇ checkAccess
¸Þ¼Òµå°¡, Àμö¾øÀÌ ºÒ·Á °©´Ï´Ù. ÀÌ °á°ú,SecurityException
°¡ ½½·Î¿ì µÇ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù.
name
- ÀÌ threadÀÇ »õ·Î¿î À̸§
SecurityException
- ÇöÀçÀÇ thread°¡ ÀÌ thread¸¦ º¯°æÇÒ ¼ö ¾ø´Â °æ¿ìgetName()
,
checkAccess()
,
getName()
public final String getName()
setName(java.lang.String)
,
setName(java.lang.String)
public final ThreadGroup getThreadGroup()
public static int activeCount()
public static int enumerate(Thread [] tarray)
enumerate
¸Þ¼Òµå¸¦, ¹è¿ Àμö¸¦ ÁöÁ¤ÇØ È£ÃâÇÒ »ÓÀÔ´Ï´Ù.
½ÃÅ¥·¯Æ¼ ¸Å´ÏÀú°¡ Á¸ÀçÇÏ´Â °æ¿ì,enumerate
¸Þ¼Òµå´Â thread ±×·ìÀ» Àμö·Î¼ ½ÃÅ¥·¯Æ¼ ¸Å´ÏÀúÀÇ checkAccess
¸Þ¼Òµå¸¦ È£ÃâÇÕ´Ï´Ù. ÀÌ °á°ú,SecurityException
°¡ ½½·Î¿ì µÇ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù.
tarray
- Thread ¿ÀºêÁ§Æ®ÀÇ Ä«ÇÇó ¹è¿
SecurityException
- ½ÃÅ¥·¯Æ¼ ¸Å´ÏÀú°¡ Á¸ÀçÇØ, ½ÃÅ¥·¯Æ¼ ¸Å´ÏÀúÀÇ checkAccess
¸Þ¼Òµå°¡ ÀÌ Á¶ÀÛÀ» Çã°¡ÇÏÁö ¾Ê´Â °æ¿ìThreadGroup.enumerate(java.lang.Thread[])
,
SecurityManager.checkAccess(java.lang.ThreadGroup)
public int countStackFrames()
suspend()
¿¡ ÀÇÁ¸ÇÕ´Ï´Ù. ¶Ç, ÀÌ È£ÃâÀÇ °á°ú´Â ÇÁ·ÎÅØ¼ÇµÇÁö ¾Ê½À´Ï´Ù.
IllegalThreadStateException
- ÀÌ thread°¡ ÁߴܵÇÁö ¾Ê´Â °æ¿ìpublic final void join(long millis) throws InterruptedException
millis
¹Ð¸® ¼¼ÄÁµå ´ë±âÇÕ´Ï´Ù. 0
ÀÇ Å¸ÀÓ ¾Æ¿ôÀº ¿µ¿øÈ÷ ´ë±âÇÏ´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù.
millis
- ¹Ð¸® ¼¼ÄÁµå ´ÜÀ§ÀÇ ´ë±â ½Ã°£
InterruptedException
- º°ÀÇ thread°¡ ÇöÀçÀÇ thread¿¡ ³¢¾îµé¾úÀ» °æ¿ì. ÀÌ ¿¹¿Ü°¡ ½½·Î¿ì µÇ¸é(ÀÚ), ÇöÀçÀÇ threadÀÇ ¼¼Ä¡±â ½ºÅ×ÀÌÅͽº´Â Ŭ¸®¾î µÈ´Ù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ÀÇ ¼¼Ä¡±â ½ºÅ×ÀÌÅͽº´Â Ŭ¸®¾î µÈ´Ùpublic final void join() throws InterruptedException
InterruptedException
- º°ÀÇ thread°¡ ÇöÀçÀÇ thread¿¡ ³¢¾îµé¾úÀ» °æ¿ì. ÀÌ ¿¹¿Ü°¡ ½½·Î¿ì µÇ¸é(ÀÚ), ÇöÀçÀÇ threadÀÇ ¼¼Ä¡±â ½ºÅ×ÀÌÅͽº´Â Ŭ¸®¾î µÈ´Ùpublic static void dumpStack()
Throwable.printStackTrace()
public final void setDaemon(boolean on)
ÀÌ ¸Þ¼Òµå´Â thread ±âµ¿Àü¿¡ È£ÃâÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
ÀÌ ¸Þ¼Òµå´Â Àμö¾øÀÌ ÀÌ threadÀÇ checkAccess
¸Þ¼Òµå¸¦ È£ÃâÇÕ´Ï´Ù. ÀÌ °á°ú, ÇöÀçÀÇ thread·Î SecurityException
°¡ ½½·Î¿ì µÇ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù.
on
- true
ÀÇ °æ¿ì, ÀÌ thread¸¦ demon thread·Î¼ ¸¶Å© ÇÑ´Ù
IllegalThreadStateException
- ÀÌ thread°¡ ¾×ƼºêÇÑ °æ¿ì
SecurityException
- ÇöÀçÀÇ thread°¡ ÀÌ thread¸¦ º¯°æÇÒ ¼ö ¾ø´Â °æ¿ìisDaemon()
,
checkAccess()
public final boolean isDaemon()
true
, ±×·¸Áö ¾ÊÀº °æ¿ì´Â false
setDaemon(boolean)
public final void checkAccess()
½ÃÅ¥·¯Æ¼ ¸Å´ÏÀú°¡ Á¸ÀçÇÏ´Â °æ¿ì, ÀÌ thread°¡ ±× Àμö·Î ÁöÁ¤µÇ¾î checkAccess
¸Þ¼Òµå°¡ ºÒ·Á °©´Ï´Ù. ÀÌ °á°ú,SecurityException
°¡ ½½·Î¿ì µÇ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù.
ÁÖ: ÀÌ ¸Þ¼Òµå°¡ JDK 1.1 ¿¡¼´Â final °¡ ¾Æ´Ï¾ú´ø °ÍÀº À߸øÀÔ´Ï´Ù. Java 2 Ç÷§Æû¿¡¼´Â final °¡ µÇ¾î ÀÖ½À´Ï´Ù.
SecurityException
- ÇöÀçÀÇ thread°¡ ÀÌ thread¿¡ÀÇ ¾×¼¼½º°¡ ¿ë¼µÇÁö ¾ÊÀº °æ¿ìSecurityManager.checkAccess(java.lang.Thread)
public String toString()
Object
³»ÀÇ toString
public ClassLoader getContextClassLoader()
½ÃÅ¥·¯Æ¼ ¸Å´ÏÀú°¡ Á¸ÀçÇÏ´Â °æ¿ì, È£ÃâÃøÀÇ Å¬·¡½º ·Î´õ°¡ null ´Â ¾Æ´Ï°í, ¹®¸Æ Ŭ·¡½º ·Î´õ°¡ ¿ä±¸µÇ°í ÀÖ´Â threadÀÇ ¹®¸Æ Ŭ·¡½º ·Î´õ¿Í °°Áö ¾Ê°í ±× ¹®¸Æ Ŭ·¡½º ·Î´õÀÇ »óÀ§ ¿ÀºêÁ§Æ®µµ ¾Æ´Ò ¶§´Â ¹®¸Æ ClassLoader ¸¦ ÃëµæÇØµµ ±¦ÂúÀºÁö ¾î¶²Áö¸¦ È®ÀÎÇϱâ À§Çؼ,RuntimePermission("getClassLoader")
¾×¼¼½º±ÇÀ» »ç¿ëÇØ, ½ÃÅ¥·¯Æ¼ ¸Å´ÏÀúÀÇ checkPermission
¸Þ¼Òµå°¡ ºÒ·Á °©´Ï´Ù.
SecurityException
- ½ÃÅ¥·¯Æ¼ ¸Å´ÏÀú°¡ Á¸ÀçÇØ, ½ÃÅ¥·¯Æ¼ ¸Å´ÏÀúÀÇ checkPermission
¸Þ¼Òµå°¡ ¹®¸Æ ClassLoader ÀÇ ÃëµæÀ» Çã°¡ÇÏÁö ¾Ê´Â °æ¿ìsetContextClassLoader(java.lang.ClassLoader)
,
SecurityManager.checkPermission(java.security.Permission)
,
RuntimePermission
public void setContextClassLoader(ClassLoader cl)
½ÃÅ¥·¯Æ¼ ¸Å´ÏÀú°¡ Á¸ÀçÇÏ´Â °æ¿ì, ÃÖÃÊ·Î, ¹®¸Æ ClassLoader ¸¦ ¼³Á¤Çصµ ÁÁÀºÁö ¾î¶²Áö¸¦ Á¶»çÇϱâ À§Çؼ(¶§¹®¿¡) RuntimePermission("setContextClassLoader")
¾×¼¼½º±ÇÀ» »ç¿ëÇØ checkPermission
¸Þ¼Òµå°¡ ºÒ·Á °©´Ï´Ù.
cl
- ÀÌ Thread ÀÇ ¹®¸Æ ClassLoader
SecurityException
- ÇöÀçÀÇ thread°¡ ¹®¸Æ ClassLoader ¸¦ ¼³Á¤ÇÒ ¼ö ¾ø´Â °æ¿ìgetContextClassLoader()
,
SecurityManager.checkPermission(java.security.Permission)
,
RuntimePermission
public static boolean holdsLock(Object obj)
ÀÌ ¸Þ¼Òµå´Â ÀÌÇÏ¿Í °°ÀÌ, ÇÁ·Î±×·¥ÀÌ, ÇöÇà thread°¡ ÁöÁ¤µÈ ¶ôÀ» ¹ú½á º¸°ü À¯ÁöÇϰí ÀÖ´Â °ÍÀ» ³ªÅ¸³¾ ¶§¿¡ »ç¿ëµË´Ï´Ù.
assert Thread.holdsLock(obj);
obj
- ¼ÒÀ¯±ÇÀÇ ¶ôÀ» Å×½ºÆ®ÇÏ´Â ¿ÀºêÁ§Æ®
NullPointerException
- obj °¡ null ÀÇ °æ¿ì
|
JavaTM 2 Platform Std. Ed. v1. 4.0 |
||||||||||
ÀüÀÇ Å¬·¡½º ´ÙÀ½ÀÇ Å¬·¡½º | ÇÁ·¹ÀÓ ÀÖ¾î ÇÁ·¹ÀÓ ¾øÀ½ | ||||||||||
°³¿ä: »óÀÚ | Çʵå | constructor | ¸Þ¼Òµå | »ó¼¼: Çʵå | constructor | ¸Þ¼Òµå |
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.