JavaTM 2 Platform
Standard Ed. 5.0

java.lang
Ŭ·¡½º Object

java.lang.Object

public class Object

Object Ŭ·¡½º´Â Ŭ·¡½º °èÃþ ·çÆ®ÀÔ´Ï´Ù. ¸ðµç Ŭ·¡½º´Â ½´ÆÛ Ŭ·¡½º·Î¼­ Object¸¦ °¡Áý´Ï´Ù. ¹è¿­À» Æ÷ÇÔÇÑ ¸ðµç ¿ÀºêÁ§Æ®´Â ÀÌ Å¬·¡½ºÀÇ ¸Þ¼­µå¸¦ ±¸ÇöÇÕ´Ï´Ù.

µµÀÔµÈ ¹öÁ¯:
JDK1. 0
°ü·Ã Ç׸ñ:
Class

»ý¼ºÀÚ °³¿ä
Object ()
           
 
¸Þ¼­µå °³¿ä
protected  Object clone ()
          ÀÌ ¿ÀºêÁ§Æ®ÀÇ Ä«ÇǸ¦ ÀÛ¼ºÇØ µ¹·ÁÁÝ´Ï´Ù.
 boolean equals (Object  obj)
          ÀÌ ¿ÀºêÁ§Æ®¿Í ´Ù¸¥ ¿ÀºêÁ§Æ®°¡ µ¿ÀÏÇÑÁö ¾î¶²Áö¸¦ ³ªÅ¸³À´Ï´Ù.
protected  void finalize ()
          ÀÌ ¿ÀºêÁ§Æ®¿¡ÀÇ ÂüÁ¶´Â ÀÌÁ¦ ¾øÀ¸¸é °¡ºñÁö Ä÷º¼Ç¿¡ ÇØ ÆÇ´ÜµÇ¾úÀ» ¶§¿¡ °¡ºñÁö Ä÷ºÅÍ¿¡ ÇØ ºÒ·Á °©´Ï´Ù.
 Class <? extends Object > getClass ()
          ¿ÀºêÁ§Æ®ÀÇ ½ÇÇà½Ã Ŭ·¡½º¸¦ µ¹·ÁÁÝ´Ï´Ù.
 int hashCode ()
          ¿ÀºêÁ§Æ®ÀÇ ÇØ½Ã ÄÚµåÄ¡¸¦ µ¹·ÁÁÝ´Ï´Ù.
 void notify ()
          ÀÌ ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅÍ·Î ´ë±âÁßÀÇ thread¸¦ 1 °³ Àç°³ÇÕ´Ï´Ù.
 void notifyAll ()
          ÀÌ ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅÍ·Î ´ë±âÁßÀÇ ¸ðµç thread¸¦ Àç°³ÇÕ´Ï´Ù.
 String toString ()
          ¿ÀºêÁ§Æ®ÀÇ Ä³¸¯ÅÍ ¶óÀΠǥÇöÀ» µ¹·ÁÁÝ´Ï´Ù.
 void wait ()
          ´Ù¸¥ thread°¡ ÀÌ ¿ÀºêÁ§Æ®ÀÇ notify() ¸Þ¼­µå ¶Ç´Â notifyAll() ¸Þ¼­µå¸¦ È£ÃâÇÒ ¶§±îÁö, ÇöÀçÀÇ thread¸¦ ´ë±â½Ãŵ´Ï´Ù.
 void wait (long timeout)
          ´Ù¸¥ thread°¡ ÀÌ ¿ÀºêÁ§Æ®ÀÇ notify() ¸Þ¼­µå ¶Ç´Â notifyAll() ¸Þ¼­µå¸¦ È£ÃâÇÏ´ÂÁö, ÁöÁ¤µÈ ½Ã°£ÀÌ °æ°úÇÒ ¶§±îÁö, ÇöÀçÀÇ thread¸¦ ´ë±â½Ãŵ´Ï´Ù.
 void wait (long timeout, int nanos)
          ´Ù¸¥ thread°¡ ÀÌ ¿ÀºêÁ§Æ®ÀÇ notify() ¸Þ¼­µå ¶Ç´Â notifyAll() ¸Þ¼­µå¸¦ È£ÃâÇÏ´ÂÁö, ´Ù¸¥ thread°¡ ÇöÀçÀÇ thread¿¡ ÀÎÅÍ·´Æ®¸¦ °É°Å³ª ÁöÁ¤µÈ ¾çÀÇ ½Ç½Ã°£ÀÌ °æ°úÇÒ ¶§±îÁö, ÇöÀçÀÇ thread¸¦ ´ë±â½Ãŵ´Ï´Ù.
 

»ý¼ºÀÚ »ó¼¼

Object

public Object()
¸Þ¼­µåÀÇ »ó¼¼

getClass

public final Class <?  extends Object > getClass()
¿ÀºêÁ§Æ®ÀÇ ½ÇÇà½Ã Ŭ·¡½º¸¦ µ¹·ÁÁÝ´Ï´Ù. ÀÌ Class ¿ÀºêÁ§Æ®´Â ³ªÅ¸³»Áø Ŭ·¡½ºÀÇ static synchronized ¸Þ¼­µå¿¡ ÇØ ¶ô µÇ´Â ¿ÀºêÁ§Æ®ÀÔ´Ï´Ù.

¹Ýȯ°ª:
¿ÀºêÁ§Æ®ÀÇ ½ÇÇà½Ã Ŭ·¡½º¸¦ ³ªÅ¸³»´Â java.lang.Class ¿ÀºêÁ§Æ®. °á°ú´Â Class<? extends X> ÇüÀÌ µÈ´Ù. ¿©±â¼­, X´Â getClass °¡ ºÒ·Á °¡´Â static ÇüÀÇ ÀÌ·¹ÀÌÀð

hashCode

public int hashCode()
¿ÀºêÁ§Æ®ÀÇ ÇØ½Ã ÄÚµåÄ¡¸¦ µ¹·ÁÁÝ´Ï´Ù. ÀÌ ¸Þ¼­µå´Â java.util.Hashtable ¿¡ ÇØ Á¦°øµÇ´Â °Í °°Àº ÇØ½Ã Å×À̺í·Î »ç¿ëÇϱâ À§Çؼ­ ÁغñµÇ¾î ÀÖ½À´Ï´Ù.

hashCode ¸Þ¼­µåÀÇ ÀϹÝÀûÀÎ ±ÔÄ¢À» ´ÙÀ½¿¡ ³ªÅ¸³À´Ï´Ù.

ÇÒ ¼ö ÀÖ´Â ÇÑ,Object Ŭ·¡½º¿¡¼­ Á¤ÀǵǴ hashCode ¸Þ¼­µå´Â ´Ù¸¥ ¿ÀºêÁ§Æ®¿¡ ´ëÇØ¼­´Â ´Ù¸¥ Á¤¼öÄ¡¸¦ µ¹·ÁÁÝ´Ï´Ù. º¸Åë , À̰ÍÀº ¿ÀºêÁ§Æ®ÀÇ ³»ºÎ ÁÖ¼Ò¸¦ Á¤¼öÄ¡·Î º¯È¯ÇÏ´Â ÇüÅ·Π±¸ÇöµË´Ï´Ù¸¸, ±×·¯ÇÑ ±¸Çö Å×Å©´ÐÀº JavaTM ÇÁ·Î±×·¥ ¾ð¾î¿¡¼­´Â ºÒÇÊ¿äÇÕ´Ï´Ù.

¹Ýȯ°ª:
ÀÌ ¿ÀºêÁ§Æ®ÀÇ ÇØ½Ã ÄÚµåÄ¡
°ü·Ã Ç׸ñ:
equals(java.lang.Object), Hashtable

equals

public boolean equals(Object  obj)
ÀÌ ¿ÀºêÁ§Æ®¿Í ´Ù¸¥ ¿ÀºêÁ§Æ®°¡ µ¿ÀÏÇÑÁö ¾î¶²Áö¸¦ ³ªÅ¸³À´Ï´Ù.

equals ¸Þ¼­µå´Â null ÀÌ¿ÜÀÇ ¿ÀºêÁ§Æ® ÂüÁ¶¿¡¼­ÀÇ µ¿Ä¡ °ü°è¸¦ ±¸ÇöÇÕ´Ï´Ù.

Object Ŭ·¡½ºÀÇ equals ¸Þ¼­µå´Â °¡Àå ºñ±³Çϱ⠽¬¿î ¿ÀºêÁ§Æ®ÀÇ µ¿Ä¡ °ü°è¸¦ ±¸ÇöÇÕ´Ï´Ù. Áï, null ÀÌ¿ÜÀÇ ÂüÁ¶Ä¡ x ¿Í y ¿¡ ´ëÇØ, ÀÌ ¸Þ¼­µå´Â x ¿Í y °¡ °°Àº ¿ÀºêÁ§Æ®¸¦ ÂüÁ¶ÇÏ´Â (x == y °¡ true) °æ¿ì¿¡¸¸ true¸¦ µ¹·ÁÁÝ´Ï´Ù.

º¸Åë , ÀÌ ¸Þ¼­µå¸¦ ¿À¹ö¶óÀ̵å(override) ÇÏ´Â °æ¿ì´Â hashCode ¸Þ¼­µå¸¦ Ç×»ó ¿À¹ö¶óÀ̵å(override) ÇØ, ¡¸µî°¡ÀÎ ¿ÀºêÁ§Æ®´Â µî°¡ÀÎ ÇØ½Ã Äڵ带 º¸°ü À¯ÁöÇÒ Çʿ䰡 ÀÖ´Ù¡¹¶ó°í ÇÏ´Â hashCode ¸Þ¼­µåÀÇ ¹ü¿ë ±Ô¾à¿¡ µû¸¦ Çʿ䰡 ÀÖ´Â °Í¿¡ À¯ÀÇÇØ ÁÖ¼¼¿ä.

ÆÄ¶ó¹ÌÅÍ:
obj - ºñ±³ ´ë»óÀÇ ÂüÁ¶ ¿ÀºêÁ§Æ®
¹Ýȯ°ª:
obj Àμö·Î ÁöÁ¤µÈ ¿ÀºêÁ§Æ®¿Í ÀÌ ¿ÀºêÁ§Æ®°¡ µ¿ÀÏÇÑ °æ¿ì´Â true, ±×·¸Áö ¾ÊÀº °æ¿ì´Â false
°ü·Ã Ç׸ñ:
hashCode(), Hashtable

clone

protected Object  clone()
                throws CloneNotSupportedException 
ÀÌ ¿ÀºêÁ§Æ®ÀÇ Ä«ÇǸ¦ ÀÛ¼ºÇØ µ¹·ÁÁÝ´Ï´Ù. ¡¸Ä«ÇÇ¡¹ÀÇ Á¤È®ÇÑ ÀÌÀ¯´Â ¿ÀºêÁ§Æ®ÀÇ Å¬·¡½º¿¡ ÇØ ´Ù¸¨´Ï´Ù. ÀϹÝÀûÀ¸·Î´Â ÀÓÀÇÀÇ ¿ÀºêÁ§Æ® x ¿¡ ´ëÇØ, ´ÙÀ½ÀÇ ½Ä

 x.clone() ! = x
ÇÏÁö¸¸ true À̸ç, ´ÙÀ½ÀÇ ½Ä

 x.clone(). getClass() == x.getClass()
µµ true ÀÎ °ÍÀÔ´Ï´Ù¸¸, À̰͵鵵 Àý´ëÀûÀÎ ¿ä°ÇÀÌ ¾Æ´Õ´Ï´Ù. ¶Ç ´ÙÀ½ÀÇ ½Ä

 x.clone(). equals(x)
µµ º¸Åë true °¡ µË´Ï´Ù¸¸, À̰͵µ Àý´ëÀûÀÎ ¿ä°ÇÀÌ ¾Æ´Õ´Ï´Ù.

º¸Åë ,super.clone¸¦ È£ÃâÇÏ´Â °ÍÀ¸·Î µ¹·ÁÁÖ°íÁö´Â ¿ÀºêÁ§Æ®¸¦ ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù. Ŭ·¡½º ¹× ±× ½´ÆÛ Ŭ·¡½º ¸ðµç °Í (Object¸¦ Á¦¿ÜÇÑ´Ù)ÀÌ ÀÌ ±ÔÄ¢¿¡ µû¸£´Â °æ¿ì,x.clone(). getClass() == x.getClass() °¡ ¼º¸³ÇÕ´Ï´Ù.

º¸Åë , ÀÌ ¸Þ¼­µå¿¡ ÇØ µ¹·ÁÁÖ°íÁö´Â ¿ÀºêÁ§Æ®´Â ÀÌ ¿ÀºêÁ§Æ® (º¹Á¦µÇ°í ÀÖ´Ù)·ÎºÎÅÍ µ¶¸³Çϰí ÀÖÀ» Çʿ䰡 ÀÖ½À´Ï´Ù. ÀÌ µ¶¸³¼ºÀ» ´Þ¼ºÇϱâ À§ÇØ,super.clone °¡ µ¹·ÁÁÖ´Â ¿ÀºêÁ§Æ®ÀÇ Çʵ带 1 °³ ÀÌ»ó (¿ÀºêÁ§Æ®°¡ µ¹·ÁÁÖ±â Àü¿¡) º¯°æÇÏ´Â °ÍÀÌ ÇÊ¿äÇÏ°Ô µÇ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. À̰ÍÀº, º¸Åë , º¹Á¦ÇÏ´Â ¿ÀºêÁ§Æ®ÀÇ ³»ºÎ ¡¸½ÉÃþ ±¸Á¶¡¹¸¦ ±¸¼ºÇÏ´Â °¡º¯ ¿ÀºêÁ§Æ®ÀÇ Ä«ÇÇ ¹× ÀÌ·¯ÇÑ ¿ÀºêÁ§Æ®¿¡ÀÇ ÂüÁ¶¸¦ Ä«ÇÇ¿¡ÀÇ ÂüÁ¶¿¡ ¿Å°Ü³õ´Â °ÍÀ» ¹ÌÇÕ´Ï´Ù. Ŭ·¡½º¿¡ ¿ø½ÃÀû ÇÊµå ¶Ç´Â ºÒº¯ ¿ÀºêÁ§Æ®¿¡ÀÇ ÂüÁ¶¸¸ÀÌ Æ÷ÇԵǴ °æ¿ì, º¸Åë ,super.clone ¿¡ ÇØ µ¹·ÁÁÖ°íÁö´Â ¿ÀºêÁ§Æ®³»ÀÇ Çʵ带 º¯°æÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù.

Object Ŭ·¡½ºÀÇ clone ¸Þ¼­µå´Â ƯÁ¤ÀÇ º¹Á¦ 󸮸¦ ½ÇÇàÇÕ´Ï´Ù. ¿ì¼±, ÀÌ ¿ÀºêÁ§Æ®ÀÇ Å¬·¡½º°¡ Cloneable ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇϰí ÀÖÁö ¾Ê´Â °æ¿ì´Â CloneNotSupportedException °¡ Throw µË´Ï´Ù. ¹è¿­Àº ¸ðµÎ, ÀÎÅÍÆäÀ̽º Cloneable¸¦ ±¸ÇöÇϰí ÀÖ´Â °ÍÀ̶ó°í º¸¿©Áö´Â °Í¿¡ ÁÖÀÇÇØ ÁÖ¼¼¿ä. ±¸ÇöÇϰí ÀÖÁö ¾Ê´Â °æ¿ì, ÀÌ ¸Þ¼­µå´Â ÀÌ ¿ÀºêÁ§Æ®ÀÇ Å¬·¡½ºÀÇ »õ·Î¿î ÀνºÅϽº¸¦ »ý¼ºÇØ, ±× Çʵ带 ¸ðµÎ, ÀÌ ¿ÀºêÁ§Æ®ÀÇ ´ëÀÀÇÏ´Â °¢ ÇʵåÀÇ ³»¿ëÀ¸·Î ÃʱâÈ­ÇÕ´Ï´Ù. À̰ÍÀº ´ëÀÔ°ú °°¾Æ, ÇʵåÀÇ ³»¿ë ÀÚ½ÅÀÌ º¹Á¦µÇ´Â °ÍÀº ¾Æ´Õ´Ï´Ù. Áï ÀÌ ¸Þ¼­µå´Â ¿ÀºêÁ§Æ®ÀÇ ¡¸»þ·ÎÄÚÇÇ¡¹¸¦ »ý¼ºÇÕ´Ï´Ù¸¸, ¡¸µö Ä«ÇÇ¡¹´Â »ý¼ºÇÏÁö ¾Ê½À´Ï´Ù.

Ŭ·¡½º Object ÀÚü´Â Cloneable ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏÁö ¾Ê±â ¶§¹®¿¡ Ŭ·¡½º°¡ Object ÀÎ clone ¸Þ¼­µå¸¦ È£ÃâÇϸé, ½ÇÇà½Ã¿¡ ¿¹¿Ü°¡ Throw µË´Ï´Ù.

¹Ýȯ°ª:
ÀÌ ÀνºÅϽºÀÇ º¹Á¦
¿¹¿Ü:
CloneNotSupportedException - ¿ÀºêÁ§Æ®ÀÇ Å¬·¡½º°¡ Cloneable ÀÎÅÍÆäÀ̽º¸¦ ¼­Æ÷Æ®Çϰí ÀÖÁö ¾Ê´Â °æ¿ì. clone ¸Þ¼­µå¸¦ ¿À¹ö¶óÀ̵å(override) ÇÑ ¼­ºê Ŭ·¡½ºµµ, ÀνºÅϽº¸¦ º¹Á¦ÇÒ ¼ö ¾ø´Â °ÍÀ» ³ªÅ¸³»±â À§Çؼ­ ÀÌ ¿¹¿Ü¸¦ Throw ÇÏ´Â ÀÏÀÌ ÀÖ´Â
°ü·Ã Ç׸ñ:
Cloneable

toString

public String  toString()
¿ÀºêÁ§Æ®ÀÇ Ä³¸¯ÅÍ ¶óÀΠǥÇöÀ» µ¹·ÁÁÝ´Ï´Ù. º¸Åë ,toString ¸Þ¼­µå´Â ÀÌ ¿ÀºêÁ§Æ®¸¦ ¡¸ÅؽºÆ®·Î Ç¥ÇöÇÑ´Ù¡¹Ä³¸¯ÅÍ ¶óÀÎÀ» µ¹·ÁÁÝ´Ï´Ù. ÀÌ °á°ú´Â Àΰ£ÀÌ ÀÐÀ» ¼ö ÀÖ´Â °£°áÇϰí À¯ÀÍÇÑ Á¤º¸¿©¾ß ÇÕ´Ï´Ù. ¸ðµç ¼­ºê Ŭ·¡½º¿¡¼­, ÀÌ ¸Þ¼­µå¸¦ ¿À¹ö¶óÀ̵å(override) ÇÏ´Â °ÍÀ» ÃßõÇÕ´Ï´Ù.

Object Ŭ·¡½ºÀÇ toString ¸Þ¼­µå´Â ¿ÀºêÁ§Æ®ÀÇ ÆÄ»ý¿øÀÇ Å¬·¡½º¸í, @ ºÎÈ£ (@) ¹× ¿ÀºêÁ§Æ®ÀÇ ÇØ½Ã ÄÚµåÀÇ ºÎÈ£ ¾øÀ½ 16 ÁøÇ¥ÇöÀ¸·ÎºÎÅÍ ±¸¼ºµÇ´Â ij¸¯ÅÍ ¶óÀÎÀ» µ¹·ÁÁÝ´Ï´Ù. Áï, ÀÌ ¸Þ¼­µå´Â ´ÙÀ½ÀÇ °ª°ú µ¿ÀÏÇÑ Ä³¸¯ÅÍ ¶óÀÎÀ» µ¹·ÁÁÝ´Ï´Ù.


 getClass(). getName() + '@' + Integer.toHexString(hashCode())
 

¹Ýȯ°ª:
ÀÌ ¿ÀºêÁ§Æ®ÀÇ Ä³¸¯ÅÍ ¶óÀΠǥÇö

notify

public final void notify()
ÀÌ ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅÍ·Î ´ë±âÁßÀÇ thread¸¦ 1 °³ Àç°³ÇÕ´Ï´Ù. ÀÌ ¿ÀºêÁ§Æ®·Î º¹¼öÀÇ thread°¡ ´ë±âÁßÀÇ °æ¿ì´Â ±× ÁßÀÇ 1 °³¸¦ Àç°³ÇÕ´Ï´Ù. ÀÌ ¼±ÅÃÀº ÀÓÀÇ·Î ±¸Çö¿¡ µû¶ó¼­ ´Ù¸¨´Ï´Ù. thread´Â wait ¸Þ¼­µå¸¦ 1 °³ È£ÃâÇØ, ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅÍ·Î ´ë±âÇÕ´Ï´Ù.

Àç°³µÈ threadÀÇ Ã³¸®´Â ÇöÀçÀÇ thread°¡ ÀÌ ¿ÀºêÁ§Æ®ÀÇ ¶ôÀ» ÇØÁ¦ÇÒ ¶§±îÁö´Â ÁøÇàµÉ ¼ö°¡ ¾ø½À´Ï´Ù. Àç°³µÈ thread´Â ´Ù¸¥ thread¿Í °°ÀÌ, ÀÌ ¿ÀºêÁ§Æ®¿Í µ¿±â Çϵµ·Ï Àû±ØÀûÀ¸·Î °Ü·ì´Ï´Ù. ¿¹¸¦ µé¾î, ÀÌ ¿ÀºêÁ§Æ®¸¦ Àá±×´Â ´ÙÀ½ÀÇ thread°¡ µÇ·Á°í ÇÏ´Â °æ¿ì¿¡¼­µµ, Àç°³µÈ threadÀÇ Ãë±ÞÀº ´Ù¸¥ threadº¸´Ù ¿ì¼¼ÇÏÁöµµ ¿­¼¼ÇÏÁöµµ ¾Ê½À´Ï´Ù.

ÀÌ ¸Þ¼­µå¸¦ È£ÃâÇÏ´Â °ÍÀº, ÀÌ ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅ͸¦ ¼ÒÀ¯ÇÏ´Â thread°¡ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù. thread°¡ ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅÍÀÇ ¿À³Ê°¡ µÇ´Â ¹æ¹ýÀº, ´ÙÀ½ÀÇ 3 ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù.

¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅ͸¦ ¼ÒÀ¯ÇÒ ¼ö ÀÖ´Â thread´Â 1 ȸ¿¡ 1 °³ »ÓÀÔ´Ï´Ù.

¿¹¿Ü:
IllegalMonitorStateException - ÇöÀçÀÇ thread°¡ ÀÌ ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅ͸¦ ¼ÒÀ¯Çϰí ÀÖÁö ¾Ê´Â °æ¿ì
°ü·Ã Ç׸ñ:
notifyAll(), wait()

notifyAll

public final void notifyAll()
ÀÌ ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅÍ·Î ´ë±âÁßÀÇ ¸ðµç thread¸¦ Àç°³ÇÕ´Ï´Ù. thread´Â wait ¸Þ¼­µå¸¦ È£ÃâÇϸé, ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅÍ·Î ´ë±âÇÕ´Ï´Ù.

Àç°³µÈ threadÀÇ Ã³¸®´Â ÇöÀçÀÇ thread°¡ ÀÌ ¿ÀºêÁ§Æ®ÀÇ ¶ôÀ» ÇØÁ¦ÇÒ ¶§±îÁö´Â ÁøÇàµÉ ¼ö°¡ ¾ø½À´Ï´Ù. Àç°³µÈ thread´Â ´Ù¸¥ thread¿Í °°ÀÌ, ÀÌ ¿ÀºêÁ§Æ®¿Í µ¿±â Çϵµ·Ï Àû±ØÀûÀ¸·Î °Ü·ì´Ï´Ù. ¿¹¸¦ µé¾î, ÀÌ ¿ÀºêÁ§Æ®¸¦ Àá±×´Â ´ÙÀ½ÀÇ thread°¡ µÇ·Á°í ÇÏ´Â °æ¿ì¿¡¼­µµ, Àç°³µÈ threadÀÇ Ãë±ÞÀº ´Ù¸¥ threadº¸´Ù ¿ì¼¼ÇÏÁöµµ ¿­¼¼ÇÏÁöµµ ¾Ê½À´Ï´Ù.

ÀÌ ¸Þ¼­µå¸¦ È£ÃâÇÏ´Â °ÍÀº, ÀÌ ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅ͸¦ ¼ÒÀ¯ÇÏ´Â thread »Ó¸¸ÀÌ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù. thread°¡ ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅÍÀÇ ¿À³Ê°¡ µÇ´Â ¹æ¹ý¿¡ ´ëÇØ¼­´Â notify ¸Þ¼­µå¸¦ ÂüÁ¶ÇϽʽÿÀ.

¿¹¿Ü:
IllegalMonitorStateException - ÇöÀçÀÇ thread°¡ ÀÌ ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅ͸¦ ¼ÒÀ¯Çϰí ÀÖÁö ¾Ê´Â °æ¿ì
°ü·Ã Ç׸ñ:
notify(), wait()

wait

public final void wait(long timeout)
                throws InterruptedException 
´Ù¸¥ thread°¡ ÀÌ ¿ÀºêÁ§Æ®ÀÇ notify() ¸Þ¼­µå ¶Ç´Â notifyAll() ¸Þ¼­µå¸¦ È£ÃâÇÏ´ÂÁö, ÁöÁ¤µÈ ½Ã°£ÀÌ °æ°úÇÒ ¶§±îÁö, ÇöÀçÀÇ thread¸¦ ´ë±â½Ãŵ´Ï´Ù.

ÇöÀçÀÇ thread´Â ÀÌ ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅÍÀÇ ¿À³Ê°¡ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù.

ÀÌ ¸Þ¼­µå´Â ÇöÀçÀÇ thread (¿©±â¿¡¼­´Â T ·Î ÇÑ´Ù)¸¦ ÀÌ ¿ÀºêÁ§Æ®ÀÇ ´ë±â ¼¼Æ®¿¡ ³Ö°í ³ª¼­, ÀÌ ¿ÀºêÁ§Æ®¿¡ ´ëÇÑ µ¿±â ¿ä±¸¸¦ ¸ðµÎ Æó±âÇÕ´Ï´Ù. thread T´Â threadÀÇ ½ºÄÉÁÙ¸µ¿¡ ´ëÇØ¼­´Â ¹«È¿·Î ¿©°ÜÁ® ÀÌÇÏÀÇ 4 °³ÀÇ ¾î¶² °ÍÀΰ¡°¡ ¹ß»ýÇÒ ¶§±îÁö ´ë±âÇÕ´Ï´Ù.

±× ÈÄ thread T´Â ÀÌ ¿ÀºêÁ§Æ®ÀÇ ´ë±â ¼¼Æ®·ÎºÎÅÍ »èÁ¦µÇ¾î threadÀÇ ½ºÄÉÁÙ¸µÀÌ ´Ù½Ã °¡´ÉÇÏ°Ô µË´Ï´Ù. ÀÌÈÄ, ÀÌ thread´Â º¸Åë ´ë·Î ¿ÀºêÁ§Æ®¿Í µ¿±âÈ­ÇÒ ±Ç¸®¸¦ ´Ù¸¥ thread¿Í °æÀïÇÕ´Ï´Ù. ¿ÀºêÁ§Æ®ÀÇ Á¦¾î¸¦ ȹµæÇϸé, ¿ÀºêÁ§Æ®¿¡ ´ëÇÑ ÀÌ threadÀÇ µ¿±â ¿ä±¸´Â ÀÌÀü »óÅÂ, Áï,wait ¸Þ¼­µå°¡ ºÒ·Á °¬À» ¶§ »óÅ¿¡ º¹¿øµË´Ï´Ù. ´ÙÀ½¿¡ thread T´Â wait ¸Þ¼­µåÀÇ È£Ãâ·ÎºÎÅÍ º¹±ÍÇÕ´Ï´Ù. ÀÌ·¸°Ô ÇØ,wait ¸Þ¼­µå·ÎºÎÅÍ º¹±ÍÇÑ ½ÃÁ¡¿¡¼­, ¿ÀºêÁ§Æ® ¹× thread T µ¿±â ½ºÅ×ÀÌÅͽº´Â wait ¸Þ¼­µå°¡ ºÒ·Á °¬À» ¶§¿Í ¿ÏÀüÈ÷ °°°Ô µË´Ï´Ù.

thread´Â ÅëÁö, ³¢¾îµé¾î, ŸÀÓ ¾Æ¿ô¾øÀÌ Àç°³µÇ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù. À̰ÍÀº, ¡¸½ºÇÁ¸®¾Æ½º¿þÀÌÅ©¾Ð¡¹À̶ó°í ºÒ¸®°í ÀÖ½À´Ï´Ù. ½ºÇÁ¸®¾Æ½º¿þÀÌÅ©¾ÐÀº, ½ÇÁ¦·Î´Â º¸±â µå¹°°Ô ¹Û¿¡ ¹ß»ýÇÕ´Ï´Ù¸¸, ¾îÇø®ÄÉÀ̼ǿ¡¼­´Â thread°¡ Àç°³µÇ´Â °ÍÀ¸·Î ¹ß»ýÇÒ °¡´É¼ºÀÌ ÀÖ´Â Á¶°ÇÀ» Å×½ºÆ®ÇØ, Á¶°ÇÀÌ Ã¤¿öÁöÁö ¾ÊÀº °æ¿ì´Â ´ë±â¸¦ °è¼ÓÇØ, ½ºÇÁ¸®¾Æ½º¿þÀÌÅ©¾ÐÀ¸·ÎºÎÅÍ º¸È£ÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. Áï, ´ÙÀ½°ú °°ÀÌ ·çÇÁ·Î Ç×»ó ´ë±â°¡ ¹ß»ýÇϵµ·Ï ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.


     synchronized (obj) {
         while (<condition does not hold>)
             obj.wait(timeout);
         ... // Perform action appropriate to condition
     }
 
(ÀÌ ÅäÇÈÀÇ ÀÚ¼¼ÇÑ °ÍÀº, Doug Lea Àú ¡¸Concurrent Programming in Java (Second Edition)¡¹(Addison-Wesley, 2000)ÀÇ ¼½¼Ç 3.2. 3 À̳ª Joshua Bloch Àú ¡¸Effective Java Programming Language Guide¡¹(Addison-Wesley, 2001)ÀÇ ¾ÆÀÌÅÛ 50À» ÂüÁ¶ÇϽʽÿÀ).

ÇöÀçÀÇ thread°¡ ´ë±âÁß¿¡ ´Ù¸¥ thread¿¡ ÇØ³¢¾îµé¾îÁ³À» °æ¿ì´Â InterruptedException °¡ Throw µË´Ï´Ù. ÀÌ ¿¹¿Ü´Â ÀÌ ¿ÀºêÁ§Æ®ÀÇ ¶ô ½ºÅ×ÀÌÅͽº°¡ Àü¼ú°ú °°ÀÌ º¹¿øµÉ ¶§±îÁö´Â Throw µÇÁö ¾Ê½À´Ï´Ù.

ÇöÀçÀÇ thread¸¦ ÀÌ ¿ÀºêÁ§Æ®ÀÇ ´ë±â ¼¼Æ®¿¡ ³ÖÀ» ¶§,wait ¸Þ¼­µå´Â ÀÌ ¿ÀºêÁ§Æ®ÀÇ ¶ô¸¸À» ÇØÁ¦ÇÕ´Ï´Ù. ÇöÀçÀÇ thread°¡ µ¿±âÈ­ÇÒ °¡´É¼ºÀÌ ÀÖ´Â ±× ´Ù¸¥ ¿ÀºêÁ§Æ®´Â ÀÌ thread°¡ ´ë±âÇϰí ÀÖ´Â µ¿¾Èµµ ¶ô µÈ´ë·Î ÀÔ´Ï´Ù.

ÀÌ ¸Þ¼­µå¸¦ È£ÃâÇÏ´Â °ÍÀº, ÀÌ ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅ͸¦ ¼ÒÀ¯ÇÏ´Â thread »Ó¸¸ÀÌ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù. thread°¡ ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅÍÀÇ ¿À³Ê°¡ µÇ´Â ¹æ¹ý¿¡ ´ëÇØ¼­´Â notify ¸Þ¼­µå¸¦ ÂüÁ¶ÇϽʽÿÀ.

ÆÄ¶ó¹ÌÅÍ:
timeout - ¹Ð¸® ¼¼ÄÁµå ´ÜÀ§ÀÇ ´ë±â ½Ã°£
¿¹¿Ü:
IllegalArgumentException - timeout °ªÀÌ ºÎÀÎ °æ¿ì
IllegalMonitorStateException - ÇöÀçÀÇ thread°¡ ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅ͸¦ ¼ÒÀ¯Çϰí ÀÖÁö ¾Ê´Â °æ¿ì
InterruptedException - ÇöÀçÀÇ thread°¡ ÅëÁö¸¦ ´ë±âÇϱâ Àü ¶Ç´Â ´ë±âÁß¿¡ ´Ù¸¥ thread°¡ ÇöÀçÀÇ thread¿¡ ³¢¾îµé¾úÀ» °æ¿ì. ÀÌ ¿¹¿Ü°¡ Throw µÇ¸é, ÇöÀçÀÇ threadÀÇ ¡¸ÀÎÅÍ·´Æ® ½ºÅ×ÀÌÅͽº¡¹´Â Ŭ¸®¾î µÇ´Â
°ü·Ã Ç׸ñ:
notify(), notifyAll()

wait

public final void wait(long timeout,
                       int nanos)
                throws InterruptedException 
´Ù¸¥ thread°¡ ÀÌ ¿ÀºêÁ§Æ®ÀÇ notify() ¸Þ¼­µå ¶Ç´Â notifyAll() ¸Þ¼­µå¸¦ È£ÃâÇÏ´ÂÁö, ´Ù¸¥ thread°¡ ÇöÀçÀÇ thread¿¡ ÀÎÅÍ·´Æ®¸¦ °É°Å³ª ÁöÁ¤µÈ ¾çÀÇ ½Ç½Ã°£ÀÌ °æ°úÇÒ ¶§±îÁö, ÇöÀçÀÇ thread¸¦ ´ë±â½Ãŵ´Ï´Ù.

ÀÌ ¸Þ¼­µå´Â Àμö°¡ 1 °³ÀÇ wait ¸Þ¼­µå¸¦ ´à¾Æ ÀÖ½À´Ï´Ù¸¸, ŸÀÓ ¾Æ¿ô±îÁöÀÇ ´ë±â ½Ã°£ÀÇ ¾çÀ» º¸´Ù ¼¼¼¼ÇÏ°Ô Á¦¾îÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ³ª³ëÃÊ´ÜÀ§ÀÇ ½Ç½Ã°£Àº, ´ÙÀ½ÀÇ ½Ä¿¡¼­ ÁöÁ¤ÇÕ´Ï´Ù.


 1000000*timeout+nanos

±× ¿ÜÀÇ ¸é¿¡¼­´Â ÀÌ ¸Þ¼­µåÀÇ µ¿ÀÛÀº Àμö°¡ 1 °³ÀÇ wait(long) ¸Þ¼­µå¿Í °°½À´Ï´Ù. ƯÈ÷,wait(0, 0)´Â wait(0) ¿Í °°Àº ¹Ì°¡ µË´Ï´Ù.

ÇöÀçÀÇ thread´Â ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅÍÀÇ ¿À³Ê°¡ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù. thread´Â ÀÌ ¸ð´ÏÅÍÀÇ ¼ÒÀ¯±ÇÀ» ÇØ¹æÇØ, ´ÙÀ½ÀÇ ¾î¶² °ÍÀΰ¡ »óŰ¡ ¹ß»ýÇÒ ¶§±îÁö ´ë±âÇÕ´Ï´Ù.

thread´Â ¸ð´ÏÅÍÀÇ ¼ÒÀ¯±ÇÀ» ÀçÂ÷ ȹµæÇÒ ¶§±îÁö ´ë±âÇØ, ±× ÈÄ ½ÇÇàÀ» Àç°³ÇÕ´Ï´Ù.

Àμö°¡ 1 °³ÀÇ ¹öÁ¯¿¡¼­´Â ÀÎÅÍ·´Æ®³ª ½ºÇÁ¸®¾Æ½º¿þÀÌÅ©¾ÐÀÌ ¹ß»ýÇÒ °¡´É¼ºÀÌ ÀÖÀ¸¹Ç·Î ÀÌ ¸Þ¼­µå´Â Ç×»ó ·çÇÁ·Î »ç¿ëµÉ Çʿ䰡 ÀÖ½À´Ï´Ù.


     synchronized (obj) {
         while (<condition does not hold>)
             obj.wait(timeout, nanos);
         ... // Perform action appropriate to condition
     }
 
ÀÌ ¸Þ¼­µå¸¦ È£ÃâÇÏ´Â °ÍÀº, ÀÌ ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅ͸¦ ¼ÒÀ¯ÇÏ´Â thread »Ó¸¸ÀÌ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù. thread°¡ ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅÍÀÇ ¿À³Ê°¡ µÇ´Â ¹æ¹ý¿¡ ´ëÇØ¼­´Â notify ¸Þ¼­µå¸¦ ÂüÁ¶ÇϽʽÿÀ.

ÆÄ¶ó¹ÌÅÍ:
timeout - ¹Ð¸® ¼¼ÄÁµå ´ÜÀ§ÀÇ ´ë±â ½Ã°£
nanos - Ãß°¡ÀÇ ´ë±â ½Ã°£ (³ª³ëÃÊ´ÜÀ§·Î 0 ~ 999999 ¹üÀ§)
¿¹¿Ü:
IllegalArgumentException - ´ë±â ½Ã°£ÀÇ °ªÀÌ ºÎÀÇ °æ¿ì, ¶Ç´Â nanos °ªÀÌ 0 ~ 999999 ¹üÀ§¿ÜÀÇ °æ¿ì
IllegalMonitorStateException - ÇöÀçÀÇ thread°¡ ÀÌ ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅ͸¦ ¼ÒÀ¯Çϰí ÀÖÁö ¾Ê´Â °æ¿ì
InterruptedException - ÇöÀçÀÇ thread°¡ ÅëÁö¸¦ ´ë±âÇϱâ Àü ¶Ç´Â ´ë±âÁß¿¡ ´Ù¸¥ thread°¡ ÇöÀçÀÇ thread¿¡ ³¢¾îµé¾úÀ» °æ¿ì. ÀÌ ¿¹¿Ü°¡ Throw µÇ¸é, ÇöÀçÀÇ threadÀÇ ¡¸ÀÎÅÍ·´Æ® ½ºÅ×ÀÌÅͽº¡¹´Â Ŭ¸®¾î µÈ´Ù

wait

public final void wait()
                throws InterruptedException 
´Ù¸¥ thread°¡ ÀÌ ¿ÀºêÁ§Æ®ÀÇ notify() ¸Þ¼­µå ¶Ç´Â notifyAll() ¸Þ¼­µå¸¦ È£ÃâÇÒ ¶§±îÁö, ÇöÀçÀÇ thread¸¦ ´ë±â½Ãŵ´Ï´Ù. Áï, ÀÌ ¸Þ¼­µåÀÇ µ¿ÀÛÀº wait(0)¸¦ È£ÃâÇßÀ» °æ¿ì¿Í °°½À´Ï´Ù.

ÇöÀçÀÇ thread´Â ÀÌ ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅÍÀÇ ¿À³Ê°¡ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù. thread´Â ÀÌ ¸ð´ÏÅÍÀÇ ¼ÒÀ¯±ÇÀ» ÇØ¹æÇØ, ´Ù¸¥ thread°¡ notify ¸Þ¼­µå ¶Ç´Â notifyAll ¸Þ¼­µå¸¦ È£ÃâÇØ ÀÌ ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅͻ󿡼­ ´ë±âÇÏ´Â thread¿¡ ÅëÁö¸¦ º¸³¾ ¶§±îÁö ´ë±âÇÕ´Ï´Ù. ±× ÈÄ, thread´Â ¸ð´ÏÅÍÀÇ ¼ÒÀ¯±ÇÀ» ÀçÂ÷ ÃëµæÇÒ ¶§±îÁö ´ë±âÇÏ°í ³ª¼­ ½ÇÇàÀ» Àç°³ÇÕ´Ï´Ù.

Àμö°¡ 1 °³ÀÇ ¹öÁ¯¿¡¼­´Â ÀÎÅÍ·´Æ®³ª ½ºÇÁ¸®¾Æ½º¿þÀÌÅ©¾ÐÀÌ ¹ß»ýÇÒ °¡´É¼ºÀÌ ÀÖÀ¸¹Ç·Î ÀÌ ¸Þ¼­µå´Â Ç×»ó ·çÇÁ·Î »ç¿ëµÉ Çʿ䰡 ÀÖ½À´Ï´Ù.


     synchronized (obj) {
         while (<condition does not hold>)
             obj.wait();
         ... // Perform action appropriate to condition
     }
 
ÀÌ ¸Þ¼­µå¸¦ È£ÃâÇÏ´Â °ÍÀº, ÀÌ ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅ͸¦ ¼ÒÀ¯ÇÏ´Â thread »Ó¸¸ÀÌ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù. thread°¡ ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅÍÀÇ ¿À³Ê°¡ µÇ´Â ¹æ¹ý¿¡ ´ëÇØ¼­´Â notify ¸Þ¼­µå¸¦ ÂüÁ¶ÇϽʽÿÀ.

¿¹¿Ü:
IllegalMonitorStateException - ÇöÀçÀÇ thread°¡ ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅ͸¦ ¼ÒÀ¯Çϰí ÀÖÁö ¾Ê´Â °æ¿ì
InterruptedException - ÇöÀçÀÇ thread°¡ ÅëÁö¸¦ ´ë±âÇϱâ Àü ¶Ç´Â ´ë±âÁß¿¡ ´Ù¸¥ thread°¡ ÇöÀçÀÇ thread¿¡ ³¢¾îµé¾úÀ» °æ¿ì. ÀÌ ¿¹¿Ü°¡ Throw µÇ¸é, ÇöÀçÀÇ threadÀÇ ¡¸ÀÎÅÍ·´Æ® ½ºÅ×ÀÌÅͽº¡¹´Â Ŭ¸®¾î µÇ´Â
°ü·Ã Ç׸ñ:
notify(), notifyAll()

finalize

protected void finalize()
                 throws Throwable 
ÀÌ ¿ÀºêÁ§Æ®¿¡ÀÇ ÂüÁ¶´Â ÀÌÁ¦ ¾øÀ¸¸é °¡ºñÁö Ä÷º¼Ç¿¡ ÇØ ÆÇ´ÜµÇ¾úÀ» ¶§¿¡ °¡ºñÁö Ä÷ºÅÍ¿¡ ÇØ ºÒ·Á °©´Ï´Ù. ¼­ºê Ŭ·¡½º´Â finalize ¸Þ¼­µå¸¦ ¿À¹ö¶óÀ̵å(override) ÇØ, system resource¸¦ ÆÄ±âÇϰųª ±× ¿ÜÀÇ Å¬¸° ¾÷À» ½Ç½ÃÇϰųª ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.

finalize ÀϹÝÀûÀÎ ±Ô¾à¿¡¼­´Â finalize È£ÃâÀº, ¾ÆÁ÷ »ýÁ¸Çϰí ÀÖ´Â ÀÓÀÇÀÇ thread°¡ ÀÌ ¿ÀºêÁ§Æ®¿¡ ¾×¼¼½º ÇÏ´Â ¹æ¹ýÀº ¾øÀ¸¸é JavaTM °¡»ó ¸Ó½ÅÀÌ ÆÇ´ÜÇßÀ» °æ¿ì¿¡ ÇàÇØÁý´Ï´Ù. ´Ù¸¸, ÆÄÀ̳ª¶óÀÌÁîÀÇ Áغñ°¡ ³¡³­ °Í ¿ÜÀÇ ¿ÀºêÁ§Æ® ¶Ç´Â Ŭ·¡½º¸¦ ÆÄÀ̳ª¶óÀÌÁîÇϱâ À§ÇÑ Ã³¸®ÀÇ °á°ú ±×·¸°Ô µÇ¾úÀ» °æ¿ì¸¦ Á¦¿ÜÇÕ´Ï´Ù. finalize ¸Þ¼­µå´Â ÀÌ ¿ÀºêÁ§Æ®¸¦ ´Ù¸¥ thread·Î ´Ù½Ã ÀÌ¿ë °¡´ÉÇÏ°Ô ÇÏ´Â Àϵµ Æ÷ÇÔÇØ, ÀÓÀÇÀÇ ¾×¼ÇÀ» ½Ç½ÃÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ±×·¯³ª,finalize º¸Åë ÀÇ ¿ëµµ´Â ¿ÀºêÁ§Æ®¸¦ Àç»ý ºÒ°¡´ÉÇÑ ÇüÅ·ΠÆÄ±âÇϱâ ÀüÀÇ Å¬¸° ¾÷À» ½ÇÇàÇÏ´Â °ÍÀÔ´Ï´Ù. ¿¹¸¦ µé¾î, ÀÔÃâ·ÂÀÇ Á¢¼ÓÀ» ³ªÅ¸³»´Â ¿ÀºêÁ§Æ®ÀÇ finalize ¸Þ¼­µå´Â ¿ÀºêÁ§Æ®°¡ ¿µ±¸ÀûÀ¸·Î ÆÄ±âµÇ±â Àü¿¡ Á¢¼ÓÀ» Àý´ÜÇϱâ À§ÇÑ ¸í½ÃÀûÀÎ ÀÔÃâ·Â 󸮸¦ ½Ç½ÃÇÕ´Ï´Ù.

Object Ŭ·¡½ºÀÇ finalize ¸Þ¼­µå´Â Ưº°ÇÑ Ã³¸®¸¦ ½Ç½ÃÇÏÁö ¾Ê½À´Ï´Ù. ÀϹÝÀûÀ¸·Î ¾Æ¹«°Íµµ ÇÏÁö ¾Ê°í º¹±ÍÇÕ´Ï´Ù. Object ¼­ºê Ŭ·¡½º´Â ÀÌ Á¤ÀǸ¦ ¿À¹ö¶óÀ̵å(override) ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.

Java ÇÁ·Î±×·¥ ¾ð¾î´Â ÀÓÀÇÀÇ ¿ÀºêÁ§Æ®¿¡ ´ëÇØ ¾î´À thread°¡ finalize ¸Þ¼­µå¸¦ È£ÃâÇÏ´ÂÁö¸¦ º¸ÁõÇÏÁö ¾Ê½À´Ï´Ù. ±×·¯³ª, finalize¸¦ È£ÃâÇÏ´Â thread°¡, À¯Àú¿¡°Ô °¡½ÃÀÎ µ¿±â ¶ôÀ» finalize È£ÃâÀÇ ½ÃÁ¡¿¡¼­´Â º¸°ü À¯ÁöÇϰí ÀÖÁö ¾Ê´Â °Í¿¡ ºÙ¾î º¸ÁõµË´Ï´Ù. ijġ µÇÁö ¾Ê´Â ¿¹¿Ü¸¦ finalize ¸Þ¼­µå°¡ Throw ÇßÀ» °æ¿ì, ¿¹¿Ü´Â ¹«½ÃµÇ¾î ¿ÀºêÁ§Æ®ÀÇ ÆÄÀ̳ª¶óÀÌÁî´Â Á¾·áÇÕ´Ï´Ù.

¾î´À ¿ÀºêÁ§Æ®¿¡ ´ëÇØ finalize ¸Þ¼­µå°¡ ºÒ·Á °£ µÚ¿¡ ´ÙÀ½ÀÇ Ã³¸®°¡ ¹ß»ýÇÏ´Â °ÍÀº, ¾ÆÁ÷ »ýÁ¸Çϰí ÀÖ´Â ÀÓÀÇÀÇ thread°¡ ÀÌ ¿ÀºêÁ§Æ®¿¡ ¾×¼¼½º ÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀº ¾øÀ¸¸é Java °¡»ó ¸Ó½ÅÀÌ ´Ù½Ã ÆÇ´ÜÇßÀ» ¶§ÀÔ´Ï´Ù. À̰Ϳ¡´Â ÆÄÀ̳ª¶óÀÌÁîÀÇ Áغñ°¡ µÇ¾î ÀÖ´Â °Í ¿ÜÀÇ ¿ÀºêÁ§Æ® ¶Ç´Â Ŭ·¡½º¿¡ ÇØ ¹ß»ýÇÑ Ã³¸®µµ Æ÷ÇÔµÇ¾î ±× ½ÃÁ¡¿¡¼­ ÀÌ ¿ÀºêÁ§Æ®´Â ÆÄ±âµË´Ï´Ù.

ÀÓÀÇÀÇ ¿ÀºêÁ§Æ®¿¡ ´ëÇØ Java °¡»ó ¸Ó½ÅÀÌ finalize ¸Þ¼­µå¸¦ ¿©·¯ Â÷·Ê È£ÃâÇÒ °ÍÀº ¾ø½À´Ï´Ù.

finalize ¸Þ¼­µå¿¡ ÇØ ¿¹¿Ü°¡ Throw µÇ¸é,finalize ¸Þ¼­µåÀÇ Ã³¸®´Â Á¤ÁöµË´Ï´Ù. ±×·¸Áö ¾ÊÀº °æ¿ì´Â ¹«½ÃµË´Ï´Ù.

¿¹¿Ü:
Throwable - ÀÌ ¸Þ¼­µå·Î »ý±ä Exception

JavaTM 2 Platform
Standard Ed. 5.0

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy µµ ÂüÁ¶ÇϽʽÿÀ.