|
JavaTM 2 Platform Std. Ed. v1. 4.0 |
||||||||||
ÀüÀÇ Å¬·¡½º ´ÙÀ½ÀÇ Å¬·¡½º | ÇÁ·¹ÀÓ ÀÖ¾î ÇÁ·¹ÀÓ ¾øÀ½ | ||||||||||
°³¿ä: »óÀÚ | Çʵå | constructor | ¸Þ¼Òµå | »ó¼¼: Çʵå | constructor | ¸Þ¼Òµå |
java.lang.Object
Object
Ŭ·¡½º´Â Ŭ·¡½º °èÃþ ·çÆ®ÀÔ´Ï´Ù. ¸ðµç Ŭ·¡½º´Â ½´ÆÛ Ŭ·¡½º·Î¼ Object
¸¦ °¡Áý´Ï´Ù. ¹è¿À» Æ÷ÇÔÇÑ ¸ðµç ¿ÀºêÁ§Æ®´Â ÀÌ Å¬·¡½ºÀÇ ¸Þ¼Òµå¸¦ ±¸ÇöÇÕ´Ï´Ù.
Class
»ý¼ºÀÚÀÇ °³¿ä | |
Object ()
|
¸Þ¼ÒµåÀÇ °³¿ä | |
protected Object |
clone ()
ÀÌ ¿ÀºêÁ§Æ®ÀÇ Ä«ÇǸ¦ ÀÛ¼ºÇØ µ¹·ÁÁÝ´Ï´Ù. |
boolean |
equals (Object obj)
ÀÌ ¿ÀºêÁ§Æ®¿Í ´Ù¸¥ ¿ÀºêÁ§Æ®°¡ µ¿ÀÏÇÑÁö ¾î¶²Áö¸¦ ³ªÅ¸³À´Ï´Ù. |
protected void |
finalize ()
ÀÌ ¿ÀºêÁ§Æ®¿¡ÀÇ ÂüÁ¶´Â ÀÌÁ¦ ¾øÀ¸¸é °¡º£Áö ÄÝ·º¼Ç¿¡ ÀÇÇØ ÆÇ´ÜµÇ¾úÀ» ¶§¿¡, °¡º£Áö ¼öÁý°¡¿¡ ÀÇÇØ ºÒ·Á °©´Ï´Ù. |
Class |
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¸¦ ´ë±â½Ãŵ´Ï´Ù.
|
»ý¼ºÀÚÀÇ »ó¼¼ |
public Object()
¸Þ¼ÒµåÀÇ »ó¼¼ |
public final Class getClass()
Class
ÇüÀÇ ¿ÀºêÁ§Æ®public int hashCode()
java.util.Hashtable
¿¡ ÀÇÇØ Á¦°øµÇ´Â °Í °°Àº ÇØ½Ã Å×À̺í·Î »ç¿ëÇϱâ À§Çؼ ÁغñµÇ¾î ÀÖ½À´Ï´Ù.
hashCode
¸Þ¼ÒµåÀÇ ÀϹÝÀûÀÎ ±ÔÄ¢À» ´ÙÀ½¿¡ ³ªÅ¸³À´Ï´Ù.
hashCode
¸Þ¼Òµå¸¦ È£ÃâÇØµµ °á°ú´Â °°Àº Á¤¼öÄ¡°¡ µÇ¾î¾ß ÇÏ´Ù
equals(java.lang.Object)
¸Þ¼Òµå·Î 2 °³ÀÇ ¿ÀºêÁ§Æ®°¡ µî°¡°¡ ¾Æ´Ï´Ù°í ¿©°ÜÁ³À» °æ¿ì´Â ÀÌ·¯ÇÑ ¿ÀºêÁ§Æ®¿¡ ´ëÇØ¼ hashCode ¸Þ¼Òµå¸¦ È£ÃâÇßÀ» ¶§¿¡, °á°ú°¡ ´Ù¸¥ Á¤¼öÄ¡°¡ µÇÁö ¾Ê¾Æµµ»ó°ü¾ø´Ù. ±×·¯³ª, µ¿ÀÏÇÏÁö ¾ÊÀº ¿ÀºêÁ§Æ®¿¡ ´ëÇØ¼´Â ´Ù¸¥ Á¤¼öÄ¡°¡ »ý¼ºµÇµµ·Ï Çϸé, ÇØ½Ã Å×À̺íÀÇ ÆÛÆ÷¸Õ½º¸¦ ¿Ã¸± ¼ö°¡ ÀÖ´Ù
ÇÒ ¼ö ÀÖ´Â ÇÑ,Object Ŭ·¡½º¿¡¼ Á¤ÀǵǴ hashCode ¸Þ¼Òµå´Â ´Ù¸¥ ¿ÀºêÁ§Æ®¿¡ ´ëÇØ¼´Â ´Ù¸¥ Á¤¼öÄ¡¸¦ µ¹·ÁÁÝ´Ï´Ù. Åë»ó, À̰ÍÀº ¿ÀºêÁ§Æ®ÀÇ ³»ºÎ ÁÖ¼Ò¸¦ Á¤¼öÄ¡·Î º¯È¯ÇÏ´Â ÇüÅ·Π±¸ÇöµË´Ï´Ù¸¸, ±×·¯ÇÑ ±¸Çö Å×Å©´ÐÀº JavaTM ÇÁ·Î±×·¥ ¾ð¾î¿¡¼´Â ºÒÇÊ¿äÇÕ´Ï´Ù.
equals(java.lang.Object)
,
Hashtable
public boolean equals(Object obj)
equals
¸Þ¼Òµå´Â µ¿Ä¡ °ü°è¸¦ ±¸ÇöÇÕ´Ï´Ù.
x
¿¡ ´ëÇØ,x.equals(x)
´Â true
¸¦ µ¹·ÁÁØ´Ù
x
¿Í y
¿¡ ´ëÇØ,x.equals(y)
´Â y.equals(x)
°¡ true
¸¦ µ¹·ÁÁÖ´Â °æ¿ì¿¡°Ô¸¸ true
¸¦ µ¹·ÁÁØ´Ù
x
,y
,z
¿¡ ´ëÇØ,x.equals(y)
°¡ true
¸¦ µ¹·ÁÁÖ¾î, ÇÑÆí y.equals(z)
°¡ true
¸¦ µ¹·ÁÁÖ´Â °æ¿ì¿¡,x.equals(z)
´Â true
¸¦ µ¹·ÁÁØ´Ù
x
¹× y
¿¡ ´ëÇØ,x.equals(y) ¸¦ º¹¼ö È£ÃâÇϸé(ÀÚ) Ç×»ó true
¸¦ µ¹·ÁÁÖ´ÂÁö Ç×»ó false
¸¦ µ¹·ÁÁØ´Ù. À̰ÍÀº ¿ÀºêÁ§Æ®¿¡ ´ëÇÑ equals
¿¡ ÀÇÇÑ ºñ±³·Î »ç¿ëµÈ Á¤º¸°¡ º¯°æµÇ¾î ÀÖÁö ¾ÊÀº °ÍÀÌ Á¶°ÇÀÌ´Ù
x
¿¡ ´ëÇØ,x.equals(null)
´Â false
¸¦ µ¹·ÁÁØ´Ù
Object
Ŭ·¡½ºÀÇ equals ¸Þ¼Òµå´Â °¡Àå ºñ±³Çϱ⠽¬¿î ¿ÀºêÁ§Æ®ÀÇ µ¿Ä¡ °ü°è¸¦ ±¸ÇöÇÕ´Ï´Ù. Áï, ¸ðµç ÂüÁ¶Ä¡ x
¿Í y
¿¡ ´ëÇØ, ÀÌ ¸Þ¼Òµå´Â x
¿Í y
°¡ °°Àº ¿ÀºêÁ§Æ®¸¦ ÂüÁ¶ÇÏ´Â (x==y
°¡ true
) °æ¿ì¿¡¸¸ true ¸¦ µ¹·ÁÁÝ´Ï´Ù.
Åë»ó, ÀÌ ¸Þ¼Òµå¸¦ ¿À¹ö¶óÀ̵å(override) ÇÏ´Â °æ¿ì´Â hashCode ¸Þ¼Òµå¸¦ Ç×»ó ¿À¹ö¶óÀ̵å(override) ÇØ, ¡¸µî°¡ÀÎ ¿ÀºêÁ§Æ®´Â µî°¡ÀÎ ÇØ½Ã Äڵ带 º¸°ü À¯ÁöÇÒ Çʿ䰡 ÀÖ´Ù¡¹¶ó°í ÇÏ´Â hashCode ¸Þ¼ÒµåÀÇ ¹ü¿ë ±Ô¾à¿¡ µû¸¦ Çʿ䰡 ÀÖ´Â °Í¿¡ À¯ÀÇÇØ ÁÖ¼¼¿ä.
obj
- ºñ±³ ´ë»óÀÇ ÂüÁ¶ ¿ÀºêÁ§Æ®
true
, ±×·¸Áö ¾ÊÀº °æ¿ì´Â false
hashCode()
,
Hashtable
protected Object clone() throws CloneNotSupportedException
ÇÏÁö¸¸ true À̸ç, ´ÙÀ½ÀÇ ½Äx.clone() ! = x
µµ true ÀÎ °ÍÀÔ´Ï´Ù¸¸, À̰͵鵵 Àý´ëÀûÀÎ ¿ä°ÇÀÌ ¾Æ´Õ´Ï´Ù. ¶Ç ´ÙÀ½ÀÇ ½Äx.clone(). getClass() == x.getClass()
µµ Åë»ó true °¡ µË´Ï´Ù¸¸, À̰͵µ Àý´ëÀûÀÎ ¿ä°ÇÀÌ ¾Æ´Õ´Ï´Ù.x.clone(). equals(x)
Åë»ó,super.clone ¸¦ È£ÃâÇÏ´Â °ÍÀ¸·Î µ¹·ÁÁÖ¾îÁö´Â ¿ÀºêÁ§Æ®¸¦ ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù. Ŭ·¡½º ¹× ±× ½´ÆÛ Ŭ·¡½º ¸ðµç °Í (Object ¸¦ Á¦¿ÜÇÑ´Ù)ÀÌ ÀÌ ±ÔÄ¢¿¡ µû¸£´Â °æ¿ì,x.clone(). getClass() == x.getClass() °¡ ¼º¸³ÇÕ´Ï´Ù.
Åë»ó, ÀÌ ¸Þ¼Òµå¿¡ ÀÇÇØ µ¹·ÁÁÖ¾îÁö´Â ¿ÀºêÁ§Æ®´Â ÀÌ ¿ÀºêÁ§Æ® (º¹Á¦µÇ°í ÀÖ´Ù)·ÎºÎÅÍ µ¶¸³Çϰí ÀÖÀ» Çʿ䰡 ÀÖ½À´Ï´Ù. ÀÌ µ¶¸³¼ºÀ» ´Þ¼ºÇϱâ À§ÇØ(¶§¹®¿¡),super.clone °¡ µ¹·ÁÁÖ´Â ¿ÀºêÁ§Æ®ÀÇ Çʵ带 1 °³ ÀÌ»ó (¿ÀºêÁ§Æ®°¡ µ¹·ÁÁÖ±â Àü¿¡) º¯°æÇÏ´Â °ÍÀÌ ÇÊ¿äÇÏ°Ô µÇ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. À̰ÍÀº Åë»ó, º¹Á¦ÇÏ´Â ¿ÀºêÁ§Æ®ÀÇ ³»ºÎ ¡¸½ÉÃþ ±¸Á¶¡¹¸¦ ±¸¼ºÇÏ´Â °¡º¯ ¿ÀºêÁ§Æ®ÀÇ Ä«ÇÇ, ¹× ÀÌ·¯ÇÑ ¿ÀºêÁ§Æ®¿¡ÀÇ ÂüÁ¶¸¦ Ä«ÇÇ¿¡ÀÇ ÂüÁ¶¿¡ ¿Å°Ü³õ´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù. Ŭ·¡½º¿¡ ¿ø½ÃÀû ÇÊµå ¶Ç´Â ºÒº¯ ¿ÀºêÁ§Æ®¿¡ÀÇ ÂüÁ¶¸¸ÀÌ Æ÷ÇԵǴ °æ¿ì, Åë»ó,super.clone ¿¡ ÀÇÇØ µ¹·ÁÁÖ¾îÁö´Â ¿ÀºêÁ§Æ®³»ÀÇ Çʵ带 º¯°æÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù.
Object Ŭ·¡½ºÀÇ clone ¸Þ¼Òµå´Â ƯÁ¤ÀÇ º¹Á¦ 󸮸¦ ½ÇÇàÇÕ´Ï´Ù. ¿ì¼±, ÀÌ ¿ÀºêÁ§Æ®ÀÇ Å¬·¡½º°¡ Cloneable ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇϰí ÀÖÁö ¾Ê´Â °æ¿ì´Â CloneNotSupportedException °¡ ½½·Î¿ì µË´Ï´Ù. ¹è¿Àº ¸ðµÎ, ÀÎÅÍÆäÀ̽º Cloneable ¸¦ ±¸ÇöÇϰí ÀÖ´Â °ÍÀ̶ó°í º¸¿©Áö´Â °Í¿¡ ÁÖÀÇÇØ ÁÖ¼¼¿ä. ±¸ÇöÇϰí ÀÖÁö ¾Ê´Â °æ¿ì, ÀÌ ¸Þ¼Òµå´Â ÀÌ ¿ÀºêÁ§Æ®ÀÇ Å¬·¡½ºÀÇ »õ·Î¿î ÀνºÅϽº¸¦ »ý¼ºÇØ, ±× Çʵ带 ¸ðµÎ, ÀÌ ¿ÀºêÁ§Æ®ÀÇ ´ëÀÀÇÏ´Â °¢ ÇʵåÀÇ ³»¿ëÀ¸·Î ÃʱâÈÇÕ´Ï´Ù. À̰ÍÀº ´ëÀÔ°ú °°¾Æ, ÇʵåÀÇ ³»¿ë ÀÚ½ÅÀÌ º¹Á¦µÇ´Â °ÍÀº ¾Æ´Õ´Ï´Ù. Áï ÀÌ ¸Þ¼Òµå´Â ¿ÀºêÁ§Æ®ÀÇ »þ·ÎÄÚÇǸ¦ »ý¼ºÇÕ´Ï´Ù¸¸, µö Ä«ÇÇ´Â »ý¼ºÇÏÁö ¾Ê½À´Ï´Ù.
Ŭ·¡½º Object ÀÚü´Â Cloneable ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏÁö ¾Ê±â ¶§¹®¿¡, Ŭ·¡½º°¡ Object ÀÎ clone ¸Þ¼Òµå¸¦ È£ÃâÇϸé(ÀÚ), ½ÇÇà½Ã¿¡ ¿¹¿Ü°¡ ½½·Î¿ì µË´Ï´Ù.
CloneNotSupportedException
- ¿ÀºêÁ§Æ®ÀÇ Å¬·¡½º°¡ Cloneable
ÀÎÅÍÆäÀ̽º¸¦ ¼Æ÷Æ®Çϰí ÀÖÁö ¾Ê´Â °æ¿ì. clone
¸Þ¼Òµå¸¦ ¿À¹ö¶óÀ̵å(override) ÇÑ ¼ºê Ŭ·¡½ºµµ, ÀνºÅϽº¸¦ º¹Á¦ÇÒ ¼ö ¾ø´Â °ÍÀ» ³ªÅ¸³»±â À§Çؼ(¶§¹®¿¡) ÀÌ ¿¹¿Ü¸¦ ½½·Î¿ì ÇÏ´Â ÀÏÀÌ ÀÖ´ÂCloneable
public String toString()
toString
¸Þ¼Òµå´Â ÀÌ ¿ÀºêÁ§Æ®¸¦ ¡¸ÅؽºÆ®·Î Ç¥ÇöÇÑ´Ù¡¹Ä³¸¯ÅÍ ¶óÀÎÀ» µ¹·ÁÁÝ´Ï´Ù. ÀÌ °á°ú´Â Àΰ£ÀÌ ÀÐÀ» ¼ö ÀÖ´Â °£°áÇϰí À¯ÀÍÇÑ Á¤º¸¿©¾ß ÇÕ´Ï´Ù. ¸ðµç ¼ºê Ŭ·¡½º¿¡¼, ÀÌ ¸Þ¼Òµå¸¦ ¿À¹ö¶óÀ̵å(override) ÇÏ´Â °ÍÀ» ÃßõÇÕ´Ï´Ù.
Object
Ŭ·¡½ºÀÇ toString
¸Þ¼Òµå´Â ¿ÀºêÁ§Æ®ÀÇ ÆÄ»ý¿øÀÇ Å¬·¡½º¸í, @ ºÎÈ£ (@), ¹× ¿ÀºêÁ§Æ®ÀÇ ÇØ½Ã ÄÚµåÀÇ ºÎÈ£ ¾øÀ½ 16 ÁøÇ¥ÇöÀ¸·ÎºÎÅÍ ±¸¼ºµÇ´Â ij¸¯ÅÍ ¶óÀÎÀ» µ¹·ÁÁÝ´Ï´Ù. Áï, ÀÌ ¸Þ¼Òµå´Â ´ÙÀ½ÀÇ °ª°ú µ¿ÀÏÇÑ Ä³¸¯ÅÍ ¶óÀÎÀ» µ¹·ÁÁÝ´Ï´Ù.
getClass(). getName() + '@' + Integer.toHexString(hashCode())
public final void notify()
wait
¸Þ¼Òµå¸¦ 1 °³ È£ÃâÇØ, ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅÍ·Î ´ë±âÇÕ´Ï´Ù.
Àç°³µÈ threadÀÇ Ã³¸®´Â ÇöÀçÀÇ thread°¡ ÀÌ ¿ÀºêÁ§Æ®ÀÇ ¶ôÀ» ÇØÁ¦ÇÒ ¶§±îÁö´Â ÁøÇàµÉ ¼ö°¡ ¾ø½À´Ï´Ù. Àç°³µÈ thread´Â ´Ù¸¥ thread¿Í °°ÀÌ, ÀÌ ¿ÀºêÁ§Æ®¿Í µ¿±â Çϵµ·Ï(µíÀÌ) Àû±ØÀûÀ¸·Î °Ü·ì´Ï´Ù. ¿¹¸¦ µé¾î, ÀÌ ¿ÀºêÁ§Æ®¸¦ Àá±×´Â ´ÙÀ½ÀÇ thread°¡ µÇ·Á°í ÇÏ´Â °æ¿ì¿¡¼µµ, Àç°³µÈ threadÀÇ Ãë±ÞÀº ´Ù¸¥ threadº¸´Ù ¿ì¼¼ÇÏÁöµµ ¿¼¼ÇÏÁöµµ ¾Ê½À´Ï´Ù.
ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇÏ´Â °ÍÀº ÀÌ ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅ͸¦ ¼ÒÀ¯ÇÏ´Â thread°¡ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù. thread°¡ ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅÍÀÇ ¿À³Ê°¡ µÇ´Â ¹æ¹ýÀº ´ÙÀ½ÀÇ 3 ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù.
synchronized
¹®ÀÇ º»Ã¼¸¦ ½ÇÇàÇÑ´Ù
Class
ÇüÀÇ ¿ÀºêÁ§Æ®ÀÇ °æ¿ì´Â ±× Ŭ·¡½ºÀÇ syncronized static ¸Þ¼Òµå¸¦ ½ÇÇàÇÑ´Ù
¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅ͸¦ ¼ÒÀ¯ÇÒ ¼ö ÀÖ´Â thread´Â 1 ȸ¿¡ 1 °³ »ÓÀÔ´Ï´Ù.
IllegalMonitorStateException
- ÇöÀçÀÇ thread°¡ ÀÌ ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅ͸¦ ¼ÒÀ¯Çϰí ÀÖÁö ¾Ê´Â °æ¿ìnotifyAll()
,
wait()
public final void notifyAll()
wait
¸Þ¼Òµå¸¦ È£ÃâÇϸé(ÀÚ), ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅÍ·Î ´ë±âÇÕ´Ï´Ù.
Àç°³µÈ threadÀÇ Ã³¸®´Â ÇöÀçÀÇ thread°¡ ÀÌ ¿ÀºêÁ§Æ®ÀÇ ¶ôÀ» ÇØÁ¦ÇÒ ¶§±îÁö´Â ÁøÇàµÉ ¼ö°¡ ¾ø½À´Ï´Ù. Àç°³µÈ thread´Â ´Ù¸¥ thread¿Í °°ÀÌ, ÀÌ ¿ÀºêÁ§Æ®¿Í µ¿±â Çϵµ·Ï(µíÀÌ) Àû±ØÀûÀ¸·Î °Ü·ì´Ï´Ù. ¿¹¸¦ µé¾î, ÀÌ ¿ÀºêÁ§Æ®¸¦ Àá±×´Â ´ÙÀ½ÀÇ thread°¡ µÇ·Á°í ÇÏ´Â °æ¿ì¿¡¼µµ, Àç°³µÈ threadÀÇ Ãë±ÞÀº ´Ù¸¥ threadº¸´Ù ¿ì¼¼ÇÏÁöµµ ¿¼¼ÇÏÁöµµ ¾Ê½À´Ï´Ù.
ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇÏ´Â °ÍÀº ÀÌ ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅ͸¦ ¼ÒÀ¯ÇÏ´Â thread »Ó¸¸ÀÌ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù. thread°¡ ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅÍÀÇ ¿À³Ê°¡ µÇ´Â ¹æ¹ý¿¡ ´ëÇØ¼´Â notify
¸Þ¼Òµå¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
IllegalMonitorStateException
- ÇöÀçÀÇ thread°¡ ÀÌ ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅ͸¦ ¼ÒÀ¯Çϰí ÀÖÁö ¾Ê´Â °æ¿ìnotify()
,
wait()
public final void wait(long timeout) throws InterruptedException
notify()
¸Þ¼Òµå ¶Ç´Â notifyAll()
¸Þ¼Òµå¸¦ È£ÃâÇÏ´ÂÁö ÁöÁ¤µÈ ½Ã°£ÀÌ °æ°úÇÒ ¶§±îÁö ÇöÀçÀÇ thread¸¦ ´ë±â½Ãŵ´Ï´Ù.
ÇöÀçÀÇ thread´Â ÀÌ ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅÍÀÇ ¿À³Ê°¡ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù.
ÀÌ ¸Þ¼Òµå´Â ÇöÀçÀÇ thread (¿©±â¿¡¼´Â T ·Î ÇÑ´Ù)¸¦ ÀÌ ¿ÀºêÁ§Æ®ÀÇ ´ë±â ¼¼Æ®¿¡ ³Ö°í ³ª¼, ÀÌ ¿ÀºêÁ§Æ®¿¡ ´ëÇÑ µ¿±â ¿ä±¸¸¦ ¸ðµÎ Æó±âÇÕ´Ï´Ù. thread T ´Â threadÀÇ ½ºÄÉÁÙ¸µ¿¡ ´ëÇØ¼´Â ¹«È¿·Î ¿©°ÜÁ® ÀÌÇÏÀÇ 4 °³ÀÇ ¾î¶² °ÍÀΰ¡°¡ ¹ß»ýÇÒ ¶§±îÁö ´ë±âÇÕ´Ï´Ù.
³¢¾îµé¾ú´Ù
ÇöÀçÀÇ thread°¡ ´ë±âÁß¿¡ ´Ù¸¥ thread¿¡ ÀÇÇØ ³¢¾îµé¾îÁ³À»
°æ¿ì´Â InterruptedException °¡ ½½·Î¿ì µË´Ï´Ù. ÀÌ ¿¹¿Ü´Â ÀÌ ¿ÀºêÁ§Æ®ÀÇ ¶ô ½ºÅ×ÀÌÅͽº°¡ Àü¼ú°ú °°ÀÌ º¹¿øµÉ ¶§±îÁö´Â ½½·Î¿ì µÇÁö ¾Ê½À´Ï´Ù.
ÇöÀçÀÇ thread¸¦ ÀÌ ¿ÀºêÁ§Æ®ÀÇ ´ë±â ¼¼Æ®¿¡ ³ÖÀ» ¶§,wait ¸Þ¼Òµå´Â ÀÌ ¿ÀºêÁ§Æ®ÀÇ ¶ô¸¸À» ÇØÁ¦ÇÕ´Ï´Ù. ÇöÀçÀÇ thread°¡ µ¿±â¸¦ ÀâÀ» °¡´É¼ºÀÌ ÀÖ´Â ±× ¿ÜÀÇ ¿ÀºêÁ§Æ®´Â ÀÌ thread°¡ ´ë±âÇϰí ÀÖ´Â µ¿¾Èµµ ¶ô µÈ´ë·Î ÀÔ´Ï´Ù.
ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇÏ´Â °ÍÀº ÀÌ ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅ͸¦ ¼ÒÀ¯ÇÏ´Â thread »Ó¸¸ÀÌ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù. thread°¡ ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅÍÀÇ ¿À³Ê°¡ µÇ´Â ¹æ¹ý¿¡ ´ëÇØ¼´Â notify
¸Þ¼Òµå¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
timeout
- ¹Ð¸® ¼¼ÄÁµå ´ÜÀ§ÀÇ ´ë±â ½Ã°£
IllegalArgumentException
- timeout ÀÇ °ªÀÌ ºÎÀÎ °æ¿ì
IllegalMonitorStateException
- ÇöÀçÀÇ thread°¡ ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅ͸¦ ¼ÒÀ¯Çϰí ÀÖÁö ¾Ê´Â °æ¿ì
InterruptedException
- º°ÀÇ thread°¡ ÇöÀçÀÇ thread¿¡ ³¢¾îµé¾úÀ» °æ¿ì. ÀÌ ¿¹¿Ü°¡ ½½·Î¿ì µÇ¸é(ÀÚ), ÇöÀçÀÇ threadÀÇ ¼¼Ä¡±â ½ºÅ×ÀÌÅͽº´Â Ŭ¸®¾î µÇ´Ânotify()
,
notifyAll()
public final void wait(long timeout, int nanos) throws InterruptedException
notify()
¸Þ¼Òµå ¶Ç´Â notifyAll()
¸Þ¼Òµå¸¦ È£ÃâÇÏ´ÂÁö ´Ù¸¥ thread°¡ ÇöÀçÀÇ thread¿¡ ¼¼Ä¡±â¸¦ °É°Å³ª ÁöÁ¤µÈ ¾çÀÇ ½Ç½Ã°£ÀÌ °æ°úÇÒ ¶§±îÁö ÇöÀçÀÇ thread¸¦ ´ë±â½Ãŵ´Ï´Ù.
ÀÌ ¸Þ¼Òµå´Â Àμö°¡ 1 °³ÀÇ wait
¸Þ¼Òµå¸¦ ´à¾Æ ÀÖ½À´Ï´Ù¸¸, ŸÀÓ ¾Æ¿ô±îÁöÀÇ ´ë±â ½Ã°£ÀÇ ¾çÀ» º¸´Ù ¼¼¼¼ÇÏ°Ô Á¦¾îÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ³ª³ëÃÊ´ÜÀ§ÀÇ ½Ç½Ã°£Àº ´ÙÀ½ÀÇ ½Ä¿¡¼ ÁöÁ¤ÇÕ´Ï´Ù.
1000000*millis+nanos
±× ¿ÜÀÇ ¸é¿¡¼´Â ÀÌ ¸Þ¼ÒµåÀÇ µ¿ÀÛÀº Àμö°¡ 1 °³ÀÇ wait(long)
¸Þ¼Òµå¿Í °°½À´Ï´Ù. ƯÈ÷,wait(0, 0) ´Â wait(0) ¿Í °°Àº Àǹ̰¡ µË´Ï´Ù.
ÇöÀçÀÇ thread´Â ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅÍÀÇ ¿À³Ê°¡ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù. thread´Â ÀÌ ¸ð´ÏÅÍÀÇ ¼ÒÀ¯±ÇÀ» ÇØ¹æÇØ, ´ÙÀ½ÀÇ ¾î¶² °ÍÀΰ¡ »óŰ¡ ¹ß»ýÇÒ ¶§±îÁö ´ë±âÇÕ´Ï´Ù.
notify
¸Þ¼Òµå ¶Ç´Â notifyAll
¸Þ¼Òµå¸¦ È£ÃâÇÏ´Â °Í¿¡ ÀÇÇØ, ÀÌ ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅÍ·Î ´ë±âÁßÀÇ thread¿¡ ÅëÁö¸¦ º¸³», ÀÌ thread¸¦ Àç°³ÇÑ´Ù
timeout
Àμö·Î ÁöÁ¤ÇÑ Å¸ÀÓ ¾Æ¿ô ±â°£ (¹Ð¸® ¼¼ÄÁµå ´ÜÀ§)°únanos
Àμö·Î ÁöÁ¤ÇÑ Å¸ÀÓ ¾Æ¿ô ±â°£ (³ª³ëÃÊ´ÜÀ§)À» ´õÇÑ ½Ã°£ÀÌ °æ°úÇÑ´Ù
thread´Â ¸ð´ÏÅÍÀÇ ¼ÒÀ¯±ÇÀ» ÀçÂ÷ ȹµæÇÒ ¶§±îÁö ´ë±âÇØ, ±× ÈÄ ½ÇÇàÀ» Àç°³ÇÕ´Ï´Ù.
ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇÏ´Â °ÍÀº ÀÌ ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅ͸¦ ¼ÒÀ¯ÇÏ´Â thread »Ó¸¸ÀÌ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù. thread°¡ ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅÍÀÇ ¿À³Ê°¡ µÇ´Â ¹æ¹ý¿¡ ´ëÇØ¼´Â notify
¸Þ¼Òµå¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
timeout
- ¹Ð¸® ¼¼ÄÁµå ´ÜÀ§ÀÇ ´ë±â ½Ã°£nanos
- Ãß°¡ÀÇ ´ë±â ½Ã°£ (³ª³ëÃÊ´ÜÀ§·Î 0 ~ 999999 ÀÇ ¹üÀ§)
IllegalArgumentException
- ´ë±â ½Ã°£ÀÇ °ªÀÌ ºÎÀÇ °æ¿ì, ¶Ç´Â nanos ÀÇ °ªÀÌ 0 ~ 999999 ÀÇ ¹üÀ§¿ÜÀÇ °æ¿ì
IllegalMonitorStateException
- ÇöÀçÀÇ thread°¡ ÀÌ ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅ͸¦ ¼ÒÀ¯Çϰí ÀÖÁö ¾Ê´Â °æ¿ì
InterruptedException
- º°ÀÇ thread°¡ ÇöÀçÀÇ thread¿¡ ³¢¾îµé¾úÀ» °æ¿ì. ÀÌ ¿¹¿Ü°¡ ½½·Î¿ì µÇ¸é(ÀÚ), ÇöÀçÀÇ threadÀÇ ¼¼Ä¡±â ½ºÅ×ÀÌÅͽº´Â Ŭ¸®¾î µÈ´Ùpublic final void wait() throws InterruptedException
notify()
¸Þ¼Òµå ¶Ç´Â notifyAll()
¸Þ¼Òµå¸¦ È£ÃâÇÒ ¶§±îÁö ÇöÀçÀÇ thread¸¦ ´ë±â½Ãŵ´Ï´Ù. Áï, ÀÌ ¸Þ¼ÒµåÀÇ µ¿ÀÛÀº wait(0) ¸¦ È£ÃâÇßÀ» °æ¿ì¿Í °°½À´Ï´Ù.
ÇöÀçÀÇ thread´Â ÀÌ ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅÍÀÇ ¿À³Ê°¡ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù. thread´Â ÀÌ ¸ð´ÏÅÍÀÇ ¼ÒÀ¯±ÇÀ» ÇØ¹æÇØ, ´Ù¸¥ thread°¡ notify
¸Þ¼Òµå ¶Ç´Â notifyAll
¸Þ¼Òµå¸¦ È£ÃâÇØ ÀÌ ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅͻ󿡼 ´ë±âÇÏ´Â thread¿¡ ÅëÁö¸¦ º¸³¾ ¶§±îÁö ´ë±âÇÕ´Ï´Ù. ±× ÈÄ, thread´Â ¸ð´ÏÅÍÀÇ ¼ÒÀ¯±ÇÀ» ÀçÂ÷ ÃëµæÇÒ ¶§±îÁö ´ë±âÇÏ°í ³ª¼ ½ÇÇàÀ» Àç°³ÇÕ´Ï´Ù.
ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇÏ´Â °ÍÀº ÀÌ ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅ͸¦ ¼ÒÀ¯ÇÏ´Â thread »Ó¸¸ÀÌ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù. thread°¡ ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅÍÀÇ ¿À³Ê°¡ µÇ´Â ¹æ¹ý¿¡ ´ëÇØ¼´Â notify
¸Þ¼Òµå¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
IllegalMonitorStateException
- ÇöÀçÀÇ thread°¡ ¿ÀºêÁ§Æ®ÀÇ ¸ð´ÏÅ͸¦ ¼ÒÀ¯Çϰí ÀÖÁö ¾Ê´Â °æ¿ì
InterruptedException
- º°ÀÇ thread°¡ ÇöÀçÀÇ thread¿¡ ³¢¾îµé¾úÀ» °æ¿ì. ÀÌ ¿¹¿Ü°¡ ½½·Î¿ì µÇ¸é(ÀÚ), ÇöÀçÀÇ threadÀÇ ¼¼Ä¡±â ½ºÅ×ÀÌÅͽº´Â Ŭ¸®¾î µÇ´Ânotify()
,
notifyAll()
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 ¸Þ¼Òµå°¡ ½½·Î¿ì ÇßÀ» °æ¿ì, ¿¹¿Ü´Â ¹«½ÃµÇ¾î ¿ÀºêÁ§Æ®ÀÇ ÆÄÀ̳ª¶óÀÌÁî´Â Á¾·áÇÕ´Ï´Ù.
¾î´À ¿ÀºêÁ§Æ®¿¡ ´ëÇØ finalize ¸Þ¼Òµå°¡ ºÒ·Á °£ µÚ¿¡ ´ÙÀ½ÀÇ Ã³¸®°¡ ¹ß»ýÇÏ´Â °ÍÀº ¾ÆÁ÷ »ýÁ¸Çϰí ÀÖ´Â ÀÓÀÇÀÇ thread°¡ ÀÌ ¿ÀºêÁ§Æ®¿¡ ¾×¼¼½º ÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀº ¾øÀ¸¸é Java °¡»ó ¸Ó½ÅÀÌ ´Ù½Ã ÆÇ´ÜÇßÀ» ¶§ÀÔ´Ï´Ù. À̰Ϳ¡´Â ÆÄÀ̳ª¶óÀÌÁîÀÇ Áغñ°¡ µÇ¾î ÀÖ´Â ´Ù¸¥ ¿ÀºêÁ§Æ® ¶Ç´Â Ŭ·¡½º¿¡ ÀÇÇØ ¹ß»ýÇÑ Ã³¸®µµ Æ÷ÇÔµÇ¾î ±× ½ÃÁ¡¿¡¼ ÀÌ ¿ÀºêÁ§Æ®´Â ÆÄ±âµË´Ï´Ù.
ÀÓÀÇÀÇ ¿ÀºêÁ§Æ®¿¡ ´ëÇØ Java °¡»ó ¸Ó½ÅÀÌ finalize ¸Þ¼Òµå¸¦ ¿©·¯ Â÷·Ê È£ÃâÇÒ °ÍÀº ¾ø½À´Ï´Ù.
finalize ¸Þ¼Òµå¿¡ ÀÇÇØ ¿¹¿Ü°¡ ½½·Î¿ì µÇ¸é(ÀÚ),finalize
¸Þ¼ÒµåÀÇ Ã³¸®´Â Á¤ÁöµË´Ï´Ù. ±×·¸Áö ¾ÊÀº °æ¿ì´Â ¹«½ÃµË´Ï´Ù.
Throwable
- ÀÌ ¸Þ¼Òµå·Î »ý±ä Exception
|
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.