¼Ò¼³°°ÀºÀÚ¹Ù2ºÎ  Á¦8Àå Thread.  8.2.2 ½º·¹µåÀÇ »óÅ  

 

8.2.2 ½º·¹µåÀÇ »óÅÂ

¾Æ·¡ÀÇ ±×¸²Àº ÀÚ¹Ù ½º·¹µåÀÇ »óŸ¦ º¸¿©ÁÖ°í ÀÖ½À´Ï´Ù. ½º·¹µåÀÇ »óŸ¦ ¾Æ´Â °ÍÀº ½º·¹µå¸¦ ¾î¶»°Ô Á¦¾îÇÏ´À³Ä¿Í °ü·ÃÀÌ ÀÖ½À´Ï´Ù. ÀÚ¹ÙÀÇ »óÅ´ »ì°í(Start), Á×°í(Dead), Running, Not Running»óÅ·Π³ª´­ ¼ö ÀÖ½À´Ï´Ù. ÀÏ´Ü ½º·¹µå°¡ »ý¼ºµÈ ÈÄ start¸¦ Çϸé, ½º·¹µå¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Â ¸Þ¼­µå¸¦ ÀÌ¿ëÇÏ¿© 3°¡Áö »óÅ·ΠÀüÀÌ(ï®ì¹)°¡ °¡´ÉÇÕ´Ï´Ù. ½ÇÁ¦ ½º·¹µåÀÇ »óÅ´ À̰ͺ¸´Ù´Â ÈξÀ º¹ÀâÇÏÁö¸¸ ÇÁ·Î±×·¥¿¡¼­ Á¦¾îÇÏ´Â ¼öÁØÀº Àß º¸¿©ÁÖ°í ÀÖ½À´Ï´Ù. °¢°¢ÀÇ »óÅ¿¡ ´ëÇØ¼­ ¾Ë¾Æ º¸µµ·Ï ÇϰڽÀ´Ï´Ù.

 

 

n        Thread»ý¼º

 ½º·¹µå¸¦ Çϳª µðÀÚÀÎÇϰí new¿¬»êÀÚ¸¦ ÀÌ¿ëÇÏ¿© ½º·¹µå¸¦ »ý¼ºÇÑ °ÍÀ» ÀǹÌÇÕ´Ï´Ù. À̰ÍÀº startÇϱ⠹ٷΠÁ÷ÀüÀÇ »óŸ¦ ³ªÅ¸³À´Ï´Ù. ÀÌ »óÅ¿¡¼­ ½º·¹µåÀÇ start ¸Þ¼Òµå°¡ È£ÃâµÇ¸é Runnable »óŰ¡ µÇ°í, ½º·¹µåÀÇ run¸Þ¼Òµå¸¦ Á¾·áÇÏ¸é ¹Ù·Î Dead »óŰ¡ µË´Ï´Ù. ±×·¸´Ù¸é ÀÌ Àå¿¡¼­ ½º·¹µå¸¦ ¸¸µå´Â ¹æ¹ýÀ» ¹è¿ìÁö ¾Ê°Ú½À´Ï±î? ´ç±ÙÀÌÁÒ.

 

 

n        Runnable

»õ·Î¿î ½º·¹µå°¡ »ý¼ºµÇ¾î ±× ½º·¹µåÀÇ start ¸Þ¼Òµå¸¦ È£ÃâÇϸé, ½º·¹µå´Â ½ÇÇà °¡´ÉÇÑ Runnable »óŰ¡ µÇ´Âµ¥, ½ÇÁ¦·Î Runnable »óÅ´ µÎ °¡Áö·Î ³ª´µ°Ô µË´Ï´Ù. CPU¸¦ Â÷ÁöÇÑ ½º·¹µå°¡ ÀÖÀ» °ÍÀÌ°í ½ÇÇà±ÇÇÑÀ» °¡Áø Èĺ¸(ý¦ÜÍ)½º·¹µå°¡ ÀÖ°Ô µË´Ï´Ù. º¸Åë ÀÌ·¯ÇÑ °ÍÀº ½ÇÇà Å¥¶ó°í ÇÏ´Â °Í¿¡ ½º·¹µå¸¦ ³Ö¾îµÎ°í ÀÚ¹Ù·±Å¸ÀÓ ½ºÄÉÁì·¯¿¡ ÀÇÇØ¼­ ó¸®µÇ°Ô µË´Ï´Ù. ½ÇÇàÅ¥¶õ Runnable»óÅ¿¡ ÀÖ´Â ½º·¹µåµéÀ» ³Ö¾îµÎ´Â ÀڷᱸÁ¶ÀÔ´Ï´Ù. ¾Ë°í º¸¸é CPU´Â ÇѼø°£¿¡ ´Ü ÇϳªÀÇ ½º·¹µå¸¸À» ½ÇÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. ½ÇÇàÅ¥¿¡ ÀÖ´Â ½º·¹µåµé Áß¿¡¼­ Çϳª¸¸À» °ñ¶ó¼­ ½ÇÇàÇϴµ¥ °ÅÀÇ ¹ø°¥¾Æ°¡¸é¼­ ½ÇÇàÀ» ÇÏ´Â °ÍÀÔ´Ï´Ù. ±×·¡¼­ ½ÇÇàÅ¥¿¡ µé¾î ÀÖ´Â ½º·¹µå¸¦ Runnable»óÅ¿¡ ÀÖ´Ù¶ó°í ¸»ÇÕ´Ï´Ù.

 

¹°·Ð, ´Ü ÇϳªÀÇ ½º·¹µå¸¸ÀÌ ½ÇÇེ·¹µåÀÌ°í ³ª¸ÓÁö´Â Èĺ¸½º·¹µåÁÒ. º¸ÅëÀÇ °æ¿ì´Â ½º·¹µå¸¦ ÀÌ·¸°Ô ³ª´©Áö¸¸ µÎ °¡Áö °æ¿ì ¸ðµÎ Runnable»óÅÂÀÔ´Ï´Ù.

 

 

n        Not Runnable

ÇöÀç, ½ÇÇàÁßÀÎ ½º·¹µåÀÇ wait, sleep¸Þ¼Òµå¸¦ È£ÃâÇÏ°Ô µÇ¸é ½º·¹µå´Â Runnable »óÅ¿¡¼­ Not Runnable»óÅ·ΠÀüȯÇÏ°Ô µË´Ï´Ù. ½ÇÇàÇÒ ¼ö ÀÖ´Â ¿µ¿ªÀ» ¹þ¾î³­ °ÍÀÌÁÒ. Á¶±Ý Àü¿¡ ¸»ÇÑ ½ÇÇàÅ¥¿¡¼­ Á¦°ÅµÇ°í ´ë±âÅ¥¶ó´Â °÷À¸·Î ÀÚ¸®¸¦ ¿Å±â´Â °ÍÀÔ´Ï´Ù. ±×¸®°í´Â ½ÇÇàÅ¥¿¡ µé¾î°¥ Á¶°ÇÀÌ µÉ ¶§±îÁö ±â´Ù¸®°Ô µË´Ï´Ù. ´Ù½Ã ¸»Çؼ­, CPU¸¦ ÀüÇô »ç¿ëÇÏÁö ¾ÊÀ¸¹Ç·Î ½ÇÇàÅ¥¿¡¼­ ´ë±âÇÏÁö ¾Ê°í, Àá½Ã ½¬´Â°ÅÁÒ. ÀÌ·¸°Ô wait³ª sleep¸Þ¼­µå°¡ È£ÃâµÉ °æ¿ì ½º·¹µå´Â Runnable »óÅ¿¡¼­ Not Runnable »óÅ·ΠÀüȯÇÏ°Ô µÇ´Âµ¥, ¹Ý´ë·Î NotRunnable»óÅ¿¡¼­ Runnable»óÅ·ΠÀüÈ¯ÇØ ÁÖ±â À§Çؼ­´Â wait¸Þ¼Òµå°¡ È£ÃâµÈ °æ¿ì¿¡´Â notify¸Þ¼Òµå¸¦ È£ÃâÇϰí, sleep¸Þ¼Òµå°¡ È£ÃâµÈ °æ¿ì¿¡´Â ÁÖ¾îÁø ½Ã°£ÀÌ °æ°úÇϸé Runnable»óŰ¡  µÇ¾î ÇϳªÀÇ Runnable½º·¹µå·Î µ¿ÀÛÇÏ´Â °ÍÀÔ´Ï´Ù.

 

 

n        Dead

½º·¹µå´Â ÇϳªÀÇ ½ÇÇà´ÜÀ§ÀÔ´Ï´Ù. µû¶ó¼­, ½º·¹µå°¡ ÇÒ ÀÏÀ» ¸ðµÎ ¸¶Ä¡¸é ½º·¹µå´Â Dead »óŰ¡ µË´Ï´Ù. ½º·¹µåÀÇ run ¸Þ¼Òµå°¡ ³¡³ª°Å³ª ¸®ÅÏ µÈ °æ¿ì ½º·¹µå´Â Dead»óŰ¡ µË´Ï´Ù.



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