Internet °ü·Ã ÀÚ·á

HomePage Backward Forward Post Reply List
Delete Modify
  Á¦¸ñ   [Java] ¾²·¹µå #1 1998/12/03 (17:31)
À̸§ ±èÈ¿¿ø
¹øÈ£ 56
Á¶È¸ 987
º»¹® ¿ì¼± ¾²·¹µåÀÇ »çÀüÀûÀÎ Àǹ̰¡ ±Ã±ÝÇϽÇÅÙµ¥¿ä.
ã¾Æº¸´Ï ½Ç, ½ÇŸ·¡µîµîÀÌ´õ±º¿ä. ¾Ë·º»ê´õ ´ë¿ÕÀÌ ¾î´À Áö¹æÀ»
¿øÁ¤Áß¿¡ ²¿ÀÎ ½ÇŸ·¡¸¦ Ç®¼ö ÀÖÀ¸¸é ¼¼°èÀÇ Á¦¿ÕÀÌ µÈ´Ù´Â ¸»¿¡
ȤÇØ ½ÇŸ·¡¸¦ Ä®·Î ÀÚ¸£°í, Ç®¾ú´Ù´Â À̾߱Ⱑ ÀüÇØÁú Á¤µµ·Î
¾²·¹µå¿¡ ´ëÇÑ ¿ª»ç´Â ±æ´Ù°í º¼ ¼ö ÀÖÁÒ(³ó´ã)
±×·³ ¿ì¸®µµ ¾Ë·º»ê´õ ´ë¿Õó·³ ½ÇŸ·¡¸¦ ²÷¾î¹ö¸®´Â °ú°¨¼ºÀ¸·Î
ÀÚ¹Ù¸¦ ÅëÇØ ¼¼°è¸¦ Á¤º¹Çϱâ À§ÇØ ÀÚ¹ÙÀÇ ½ÇŸ·¡ÀÎ ¾²·¹µå¿Í
¸ÖƼ¾²·¹µå¸¦ ¾Ë¾Æº¸µµ·Ï ÇÏÁÒ.

1. ¾²·¹µå¿Í ¸ÖƼ¾²·¹µå
   ¿ì¸®°¡ »ì°í ÀÖ´Â ¼¼°è°¡ Á¡Á¡  ´õ º¹ÀâÇØÁ® °¡°í ÀÖÁö¿ä. ½Å¼¼
´ë¶ó°í ºÒ¸®´Â ÀþÀº ÃþÀº Çѹø¿¡ ÇϳªÀÇ ÀÏÀ» ÇÏ´Â °ÍÀ» ½È¾î ÇÏ´Â
µ¥ ´ëÃæ ±× ¸ð½ÀÀ» º¸¸é,  ÇÑÂÊ ±Í¿¡´Â À̾îÆùÀ» ²Å°í, ÄÄÇ»ÅÍ  ¾Õ¿¡
¾É¾Æ ¿À¶ôÀ» Çϸç,  °¡²û¾¿ ¸¸È­Ã¥À» ÃÄ´Ù  º¸°í, ¿·¿¡ ÀÖ´Â  Ä£±¸¿Í
À̾߱⸦ Çϸç, ¾î¸Ó´Ï°¡ µé¾î¿À½ÃÁö´Â ¾ÊÀ»±î ³ë½ÉÃÊ»ç, ¹®ÀÌ  ¿­¸®
´Â°¡ ÁÖ½ÃÇÏ°Ô µÇÁö¿ä.  ±â¼º¼¼´ëµéÀº ½Å¼¼´ëµéÀÌ  ¼¼»óÀ» »ì¾Æ°¡´Â
¹æ½ÄÀ» ÀÌÇØÇÏÁö ¸øÇϸç, ¿ì¸®¸¦ µÑ·¯ ½Î°í  ÀÖ´Â ¼¼»óÀÇ ¸ð½ÀÀ» ÀÌ
ÇØÇÏÁö ¸øÇÑ´Ù°í ÇÒ ¼ö ÀÖÁÒ. ¹°·Ð  ½Å¼¼´ë°¡ ±â¼º¼¼´ë¸¦ ÀÌÇØ ¸øÇÏ
´Â °Íµµ ÀÖÁö¸¸.  ¿ÂÅë À⵿»ç´Ï Á¤º¸  Åõ¼ºÀÌÀÎ ½Å¹®°ú ¹æ¼Û,  Ç×»ó
»õ·Î¿öÁö´Â À½¾Ç, Áñ°Å¿òÀÌ °¡µæÇÑ  ÄÄÇ»ÅÍ ¿À¶ôµîµî !!  ÀÌ·±  ¸ðµç
°ÍÀ» Çѹø¿¡ Çϳª¾¿ ¹Þ¾ÆµéÀ̰ųª  Áñ±â±â¿¡´Â ³Ê¹« ½Ã°£ÀÌ  ºÎÁ·ÇÏ
¸ç, ½Ã°£ÀÌ Áö³ª°í ³ª¸é ¾Æ¹«·± ¾µ¸ð°¡ ¾ø´Ù´Â °Íµµ ÀÌÇØ ÇØÁÖÁö ¸ø
ÇÏ´Â ¾î¸£½Åµé.
   Àΰ£ÀÇ °¨°¢Àº º»ÁúÀûÀ¸·Î ¸ÖƼ¹Ìµð¾î ÁöÇâÀûÀÌ´Ù´Â °ÍÀº ´©
±¸³ª ´Ù ¾Æ´Â »ç½ÇÀϻӴõ·¯, ÇϳªÀÇ °¨°¢ÀÌ¶óµµ  ±ÕÇüÀ» ¸ÂÃßÁö ¾Ê
À¸¸é, °¨°¢ÀÇ ÆòÇüÀÌ ¹«³ÊÁö°í ¾ÈÁ¤À» ãÁö ¸øÇÏ°í ¾ÈÀýºÎÀýÇÏ°Ô µÇ
ÁÒ. ÀÌ·¸°ÔµÇ¸é Á¤¼­Àû ºÒ¾È±îÁö ¸ô°í°¡ ½É°¢ÇÑ Á¤½ÅÀûÀÎ Áúº´À» ¾Î
°Ô ÇÒ ¿ì·Áµµ ÀÖ°í... ¿ì¸®´Â ¹«¾ùÀΰ¡¸¦  ¶Ñ·ÇÈ÷ ¹Ù¶óº¸¸é¼­µµ ÁÖÀ§
¿¡¼­ ¾ß±¸°øÀÌ ³¯¶ó¿À´Â °ÍÀ» ÀνÄÇÒ ¼ö ÀÖÀ¸¸ç, ¹ÙÇϳª ¸ðÂ¥¸£Æ®ÀÇ
À½¾ÇÀ» µéÀ¸¸é¼­, Ä£±¸¿Í ´ëÈ­¸¦  ÇÒ¼ö Àִµ¥, ¾ÆÁÖ ³î¶ó¿î  ´É·ÂÀÌ
Áö¿ä. ±×·¸Áö ¸øÇϸé,  ´Ù¹æ°ú Ä«Æä¿¡¼­  Èê·¯³ª¿À´Â À½¾ÇÀº  ÀüºÎ´Ù
´ëÈ­¸¦ °¡·Î¸·´Â À庮ÀÏ »ÓÀε¥µµ, ¿©ÀüÈ÷ Åͺ¸ÀÇ °ËÀº °í¾çÀÌ µîÀÇ
À½¾ÇÀº °è¼ÓµÇ°í ÀÖ´Ù.

   ÄÄÇ»ÅÍ·Î ±¸ÇöÇÏ´Â ÇÁ·Î±×·¥µµ  ¿ª½Ã ¸¶Âù°¡ÁöÀÔ´Ù. »ç¶÷µéÀº
ÄÄÇ»Å͸¦ ÀÌ¿ëÇØ À½¾ÇÀ» Àü¼Û¹Þ¾Æ ½ºÇÇÄ¿¸¦ ÅëÇØ Èê·¯ ³ª¿À°Ô ÇÏ°í,
ÇÑÂÊ¿¡¼­ È­¸éÀ» ½ºÅ©·ÑÇؼ­ ¿øÇÏ´Â ´Ü¾î³ª  ¹®ÀåÀ» ãÀ¸¸ç, ÇÑÂÊ¿¡
¼­´Â »õ·Î¿î ÆÄÀÏÀ» FTP¸¦ ÀÌ¿ëÇÏ¿© Àü¼Û¹Þ±â¸¦ ¹Ù¶óÁö¿ä. Àú¸¸ ±×
·²¼öµµ ÀÖÁö¸¸, Á¶±Ý¸¸ ÀÚ½ÅÀÌ ÆÄ¿ö À¯Àú¶ó°í »ý°¢ÇÏ´Â ºÐµéÀº ´Ùµé
Àúó·³ ´À³¥ °ÍÀÔ´Ï´Ù. ÀÌ·¯ÇÑ ÀÛ¾÷ÀÌ  ¿©·¯°³ÀÇ ÀÛ¾÷À¸·Î ³ª´µ¾îÁ®
ÀÖ´Â °Íº¸´Ù´Â ´ÜÀÏÇÑ ÀÛ¾÷¿¡¼­  ¿©·¯°³°¡ µ¿½Ã¿¡ ¼öÇàµÇ±â¸¦  ¹Ù¶ó
´Â °ÍÀÌ´Ù. ÀÚ¹Ù´Â Àΰ£ÀÇ ¸ÖƼ¹Ìµð¾î ÁöÇâÀûÀΠƯ¼ºÀ» ¹Ý¿µÇϱâ À§
ÇØ ¾²·¹µå¶ó´Â °³³äÀ» µµÀÔÇÏ¿©, ¸ÖƼ¾²·¹µå¸¦  ÅëÇØ ÃÖÁ¾ÀûÀ¸·Î ¿Ï
¼ºÇÑ´Ù. ¸ÖƼ¾²·¹µå¸¦ ÀÌ¿ëÇÏÁö ¾Ê´Â ÀÚ¹ÙÇÁ·Î±×·¥Àº ÀÚ¹Ù°¡ Á¦°øÇÏ
´Â °¡È÷ Çõ¸íÀûÀΠȯ°æÀ» Æ÷±âÇÏ´Â °ÍÀ̳ª ´Ù¸§¾ø´Ù. ¾²·¹µå¿Í ¸ÖƼ
¾²·¹µå¿¡ ´ëÇؼ­ õõÈ÷ ¾Ë¾Æº¸µµ·Ï ÇÏ°Ú½À´Ï´Ù.

1.1. ŽºÅ·°ú ¸ÖƼŽºÅ·
   ÀÚ¹Ù¿¡¼­´Â ³­µ¥¾øÀÌ ¾²·¹µå(Thread)¸¦  »ç¿ëÇÑ´Ù. ÀÌ ¾²·¹µå¸¦
ÀÌ¿ëÇϸé, ¸ÖƼ¾²·¹µùÀ» ÀÌ¿ëÇÒ ¼ö°¡ ÀÖ´Ù°í Çϴµ¥, JDK¿¡  »ðÀÔµÇ
¾î ÀÖ´Â, Sort ¿¹Á¦¸¦ º¸¸é, ¸ÖƼ¾²·¹µå¿¡ ´ëÇØ ³î¶ó¿òÀ»  ±ÝÇÒ ¼ö°¡
¾ø´Ù. Ȥ½Ã ¸ÖƼ¾²·¹µùÀÌ ¸ÖƼŽºÅ·(MultiTasking)À»  ÀÚ¹Ù¿¡¼­ ´Ù
¸£°Ô ºÎ¸£´Â °ÍÀÌ ¾Æ´Ñ°¡ ÇÏ´Â ÀDZ¸½ÉÀÌ µé°ÍÀÌ´Ù. ±×·¯³ª ¸ÖƼŽº
Å·Àº ¿©·¯°¡Áö ÀÛ¾÷À» µ¿½Ã¿¡ ¼öÇàÇÏ´Â °ÍÀÌ¸ç ´ëÇ¥ÀûÀÎ ¿¹°¡ À©µµ
¿ìÁî3.1ÀÌ µÉ °ÍÀÌ´Ù. À©µµ¿ì¸¦  ½ÇÇà½ÃÅ°°í ¿öµå¸¦ ÅëÇØ ¹®¼­¸¦  ÀÛ
¼ºÇÏ°í, ÇÑÆíÀ¸·Î´Â ³×Æ®½ºÄÉÀÌÇÁ¸¦ ¶ç¿ö³õ°í¼­ ÀÎÅͳÝÀ» Ç×ÇØÇÒ ¼ö
ÀÖ´Â ÀÛ¾÷¹æ¹ýÀÌ´Ù. ¸ÖƼ¾²·¹µùÀº  ÇϳªÀÇ ÀÛ¾÷À» ½ÇÇà½ÃÅ°¸é,  ±×¾È
¿¡ ¿©·¯°³ÀÇ ¾²·¹µå°¡ °¢±â ÁÖ¾îÁø ÀÏÀ»  ÇÏ´Â °ÍÀÌ´Ù. Â÷ÀÌ´Â ½ÇÇà
µÇ´Â ½ÇÇà´ÜÀ§°¡ ÇϳªÀΰ¡ ¿©·¯°³Àΰ¡·Î ¸ð¾ÆÁö°Ô µÈ´Ù.
   ÀüÅëÀûÀÎ C¿¡¼­´Â ´ÜÀÏÇÑ  ½ÇÇàÈ帧À» °®´Â ÇÁ·Î±×·¥¿Ü¿¡´Â  ¸¸
µé ¼ö ¾ø¾ú´Ù. ¹°·Ð È­¸é»óÀ¸·Î´Â ¿©·¯°³ÀÇ ÇÁ·Î±×·¥ÀÌ µ¿ÀÛÇÏ´Â °Í
ó·³ º¸ÀÌ°Ô ÇÒ ¼ö ÀÖÀ»·±Áö´Â ¸ô¶óµµ, ±×°ÍÀº µ¡ÀÛ¾÷À̶ó°í ºÒ¸®´Â
´ÜÀÏÇÑ ÇÁ·Î±×·¥ÀÇ È帧À̾ú´Ù. À̸¦ À§ÇØ  ÇÁ·Î±×·¡¸Ó´Â °¡´ÉÇÑ ¸ð
µç ÀÏÀ» »ý°¢ÇÏ¿© ÇÁ·Î±×·¥À» ÇØ¾ß Çß´Ù.  ÀÌ·± ¹®Á¦´Â µµ½º¶ó°í ºÒ
¸®´Â ¹ÝÂÊÂ¥¸® ¿î¿µÃ¼Á¦¶§¹®¿¡ ¹ú¾îÁø ÇÊ¿¬ÀûÀÎ °á°úÀ̱⵵ Çß´Ù.
    ±×·¯³ª À©µµ¿ìÁî°¡ GUIȯ°æÀ» µµÀÔÇØ ¼º°øÇϱâ´Â ÇßÁö¸¸,  ½ÃºÐ
ÇÒ ¹æ½ÄÀ» ÀÌ¿ëÇÑ  Å¸ÀÓ½½¶óÀ̽º(Time Slice)¸¦  ÅëÇØ ¸ÖƼŽºÅ·À»
Èä³»³»´Âµ¥ ±×Ä¡°í ¸»¾Ò´Ù.  ÇϳªÀÇ ÀÛ¾÷ÀÌ  µ¥µå¶ô¿¡ °É¸®°Ô  µÇ¸é,
¾î¿ ¼ö ¾øÀÌ ¸®ºÎÆÃÇØ¾ß ÇÏ´Â ºñ¼±Á¡Çü(Non-preEmpty)¹æ½ÄÀ̾ú±â
¿¡ ±×·¸°Ô ÁÁÀº °ÍÀº ¾Æ´Ï¾ú´Ù. À©µµ¿ìÁîNT·Î À©µµ¿ìÁî°¡ ÁøÈ­Çϸé
¼­, ¼±Á¡Çü ¸ÖƼŽºÅ·À» Áö¿øÇÔÀ¸·Î½á, Áß°£¿¡ ÇϳªÀÇ ÀÛ¾÷ÀÌ  ¸ØÃá
´Ù°í Çصµ ±× ÀÛ¾÷¿¡ ÇÒ´çµÈ ÇÁ·Î¼¼½º¸¦ Á¦°ÅÇÔÀ¸·Î½á µ¥µå¶ôÀ» ¸·
À» ¼ö°¡ ÀÖ¾ú´Ù.

1.2. ¾²·¹µå
   ¾²·¹µå¶õ ¹«¾ùÀΰ¡ ? ¸ÕÀú SUN¿¡¼­  ¸¸µç ÀÚ¹Ù¹®¼­¿¡ ³ª¿Â Á¤
ÀǸ¦ º¸µµ·Ï ÇÏÀÚ.
   Á¤ÀÇ : ¾²·¹µå´Â ÇÁ·Î±×·¥¾È¿¡¼­  ´ÜÀÏÇÑ ¿¬¼ÓÀûÀÎ Á¦¾îÀÇ È帧
ÀÌ´Ù.
   (Definition : A Thread is  a single sequential flow  of control
within a progrom.)

   ¹°·Ð ÀÌ ÇÑÁÙÀÇ Á¤ÀǸ¦ ÅëÇØ ¾²·¹µå°¡ ¹«¾ùÀÎÁö ¾Ë±â´Â Èûµé´Ù.
¿ì¼±   ±âÁ¸ÀÇ  ÇÁ·Î±×·¥   ¹æ½ÄÀÎ   ¿¬¼ÓÀûÀÎ  ÇÁ·Î±×·¥(Sequential
Program)°úÀÇ Â÷À̸¦ ÅëÇØ ¾²·¹µå¿¡ ´ëÇØ ¾Ë¾Æº¸ÀÚ. ±âÁ¸ÀÇ ÇÁ·Î±×
·¥µéÀº ´ÜÀÏÇÑ ÀÛ¾÷À» ÇÏ´Â  °ÍÀÌ´Ù. ¹°·Ð ÇÁ·Î±×·¥ÀÇ  Å©±â°¡ Å©°í
ÇÑ ÇÁ·Î±×·¥¾È¿¡ ¿©·¯°³ÀÇ ÀÛ¾÷µéÀÌ µé¾î ÀÖ´Â °æ¿ìµµ ÀÖÁö¸¸, ¿ì¸®
ÀÇ °üÁ¡Àº ÇÁ·Î±×·¥ÀÇ ½ÃÀÛ°ú ³¡ÀÌ ÇϳªÀÌ°í, È帧µµ Çϳª¶ó´Â °ÍÀÌ
´Ù. Áï ¼ýÀÚ¸¦ ÀÔ·Â¹Þ¾Æ °è»êÇÏ´Â ÇÁ·Î±×·¥À̸é, ¨çÇÁ·Î±×·¥ÀÌ  ½ÃÀÛ
ÇÏ°í ¨è¼ýÀÚ¸¦  ÀÔ·Â¹Þ°í ¨éÀԷ¹ÞÀº  ¼ýÀÚ°¡ ÀûÇÕÇÑ°¡¸¦  ÆÇ´ÜÇÏ°í
¨ê¼ýÀÚ¸¦ Ãâ·ÂÇϰųª ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÏ°í ¨ëÇÁ·Î±×·¥À» Á¾·áÇÏ´Â ¿©
·¯°³ÀÇ °úÁ¤µéÀÌ µé¾î ÀÖ´Â ´ÜÀÏÇÑ ÀÛ¾÷ÀÎ °ÍÀÌ´Ù. ±×·³ ¾²·¹µå¿Í´Â
¾î¶² Â÷ÀÌ°¡ ÀÖ´Â °ÍÀϱî ?
   ºÒÇàÇÏ°Ôµµ ´ÜÀÏÇÑ(Single) ¾²·¹µå´Â À§¿¡¼­ ¾ð±ÞµÈ ±âÁ¸ÀÇ ÇÁ·Î
±×·¥µé°ú ¾î¶² Â÷ÀÌÁ¡µµ ãÀ» ¼ö°¡ ¾ø´Ù.  ´ÜÀÏÇÑ ¾²·¹µå ¶ÇÇÑ ½ÃÀÛ
°ú ³¡À» °¡Áö°í ÀÖ°í, ÇÁ·Î±×·¥»óÀÇ ÇϳªÀÇ ÁöÁ¡¿¡¼­ ½ÇÇàµÇ°í ÀÖ´Â
°ÍÀ̱⠶§¹®ÀÌ´Ù.
   ¾Æ¹« °Íµµ ´Ù¸¥ ¹Ù°¡ ¾ø´Ù´Ï  !!  ´ÜÀÏÇÑ(Single) ¾²·¹µå¿Í ¿¬¼Ó
ÀûÀÎ ÇÁ·Î±×·¥(Sequential Program)°ú´Â ¾Æ¹«·±  Â÷ÀÌ°¡ ¾ø´Ù. ±×·¯
³ª ¸ÖƼ¾²·¹µå(MultiThread)¿Í´Â ºÐ¸íÈ÷ Â÷ÀÌ°¡  ÀÖ´Ù. ´ÜÀÏÇÑ ¾²·¹
µå´Â ¸ÖƼ¾²·¹µå¸¦ ±¸ÇöÇϱâ À§ÇÑ Áß¿äÇÑ  ±âº»ÀûÀÎ °´Ã¼ÀÌ´Ù. ´ÜÀÏ
ÇÑ ¾²·¹µé´Â ¸ÖƼ¾²·¹µåÈ­ µÉ¶§ ¸Å¿ì Áß¿äÇÏ°Ô ´Ù·ç¾îÁø´Ù. ±×·³ ¿¹
Á¦¸¦ ÅëÇؼ­, °ú¿¬ ¾²·¹µå°¡ ¹«¾ùÀÎÁö ¾Ë¾Æº¸µµ·ÏÇÏÀÚ.

1.3. ¸ÖƼ¾²·¹µå ù¹ø° ¿¹Á¦  - °ú°¨È÷  °í¹éÇÒ
°ÍÀΰ¡ ¸»°ÍÀΰ¡ ?
   Ã¹»ç¶ûÀÇ ±â¾ïÀº  ¾Æ·ÃÇÏ´Ù. ´©±¸³ª  Ã¹»ç¶ûÀÇ ±â¾ïÀ»  °£Á÷Çϸç
Æò»ýÀ» ±×¸®¿öÇÒ °ÍÀÌ´Ù. »ç¶û¿¡ ´«ÀÌ ¶°Áø  ¾î´À ³¯Àΰ¡ ¹«½ÉÄÚ Â¤
¾îµç Àå¹Ì²É ²ÉÀÙÀ» Çϳª µÑ ¾¿ ¶â¾î³»¸ç, °ú¿¬ »ó´ë¹æµµ ¶ÇÇÑ ÀÚ½Å
À» »ç¶ûÇϴ°¡¿¡ ´ëÇØ ²ÉÁ¡À» º¸±âµµ ÇÑ´Ù. ±×·¯¸é¼­ ¶¸¶¸ÀÌ °í¹éÇÒ
¼ö ¾ø´Â ÀÚ½ÅÀÌ ¾È¾²·´°Ô »ý°¢Çϸç, ¿ë±â°¡ ¾ø´Â Àڽſ¡°Ô Àå¹Ì²ÉÀÙ
À» ºô¾î ¿ë±â¸¦ ºÑµ¸¿ì·Á°í  ÇÏÁö¸¸, °á°ú¾ß Ç×»ó  ÀÚ½ÅÀÌ ¸¶À½¸Ô°í
ÀÖ´øµ¥·Î µÇ´ø ¾²¶ó¸° ±â¾ïÀ»¡¦¡¦. ±×·¡¼­ ¿ë±âÀÖ´Â ÀÚ°¡ ¹ÌÀÎÀ» ¾ò
´Â´Ù°í ÇÏÁö ¾Ê´ø°¡ ?
   ¸ÖƼ¾²·¹µå°¡ °ú¿¬ ¾î¶² °ÍÀΰ¡¸¦ »ìÆ캸±â À§ÇØ ¿©±â¼­´Â ù»ç
¶ûÀ» °í¹éÇϱâ À§ÇÑ ¼ø¼öÇÔÀ¸·Î µ¹¾Æ°¡°íÀÚ  ÇÑ´Ù. ÁغñµÈ ½Ã³ª¸®¿À
´Â ´ÙÀ½°ú °°´Ù.
   Ã¹»ç¶ûÀ» °í¹éÇϱâ À§ÇÑ ÀÚ¹Ù ¸ÖƼ¾²·¹µå ¿¹Á¦ÀÇ ½Ã³ª¸®¿À
   Áغñ¹° : Àå¹Ì ÇѼÛÀÌ
   °¡ Á¤ :  ´ç½ÅÀÌ »ç¶ûÇÏ´Â »ç¶÷µµ  ´ç½ÅÀ» »ç¶ûÇϴ°¡¸¦ ²ÉÁ¡À»
ÅëÇؼ­ È®ÀÎÇØ º»´Ù.
           ¨ç ù¹ø° ¾²·¹µå - ´ç½ÅÀ»  »ç¶ûÇÑ´Ù. ´çÀå ´Þ·Á°¡ »ç
¶ûÀ» °í¹éÇÏÀÚ.
           ¨è µÎ¹ø° ¾²·¹µå - ´ç½ÅÀº Á»´õ ±â´Ù·Á¾ß ÇÑ´Ù.
           ¨é ¼¼¹ø° ¾²·¹µå - ´ç½ÅÀ» »ç¶ûÇÏÁö ¾Ê´Â´Ù. ÀÏÂġ
Æ÷±âÇ϶ó
   Á¶ °Ç : ¨ç ²ÉÀÙÀº 30°³ À̸ç,
           ¨è °¢ ¾²·¹µå´Â µ¿½Ã¿¡ ½ÇÇàµÇ¸ç
           ¨é °¢ ¾²·¹µå´Â random()  ¸Þ½îµå¿¡ ¹ß»ýµÈ °ª¸¸Å­  ¾²
·¹µå¸¦ ½¬°Ô ÇÑ´Ù.
   °á °ú : °¡Àå ¸¶Áö¸·¿¡ Ãâ·ÂµÈ ¾²·¹µåÀÇ °á°ú¸¦ µû¸¥´Ù.
           »ç¶ûÀº Âü´Â °ÍÀ̶ó°í ÇÏ´ø°¡ ?

   ÁغñµÈ ½Ã³ª¸®¿À°¡ ¸¾¿¡ ¾Èµå´Â  ºÐµéµµ °è½Ã°ÚÁö¸¸, ¾Æ¹«Æ° ÀÌ
¸¸ÇÏ¸é ´ç½ÅÀÌ »ç¶ûÇÏ´Â »ç¶÷¿¡°Ô  »ç¶ûÀ» °í¹éÇÏ´Â ¸ÖƼ¾²·¹µå  ¿¹
Á¦·Î´Â ÃæºÐÇÒ °ÍÀÌ´Ù. ±×·³ ÀÌ ½Ã³ª¸®¿À¸¦ ÀÚ¹ÙŬ·¡½º·Î ±¸ÇöÇÑ ¿¹
Á¦¸¦ »ìÆ캸ÀÚ.
   Ã¹¹ø° »ìÆ캼 ¿¹Á¦´Â Àå¹Ì²ÉÀ¸·Î ²ÉÁ¡À» º¸´Â Ŭ·¡½º¸¦ »ý¼ºÇØ
ÁÖ´Â RoseThread.javaÀÌ´Ù.
   // RoseThread.java
   01: import java.util.Date ;
   02:
   03: class RoseThread extends Thread {
   04:
   05:   String Result="" ;
   06:   public RoseThread(String str) {
   07:       super(str) ;
   08:   } // end RoseThread()
   09:
   10:   public void run() {
   11:       Date current= new Date() ;
   12:       for(int i=0;i<10;i++) {
   13:           System.out.println(i+"  "+ getName() + "  " +
current.getSeconds() ) ;
   14:           try {
   15:                sleep( (int)(Math.random() * 1000))  ;
   16:           } catch (InterruptedException e) {}
   17:       } // end for
   18:
   19:      Result = getName();
   20:      System.out.println("¼±ÅÃ!! => "+ Result ) ;
   21:    } // end run()
   22:
   23: } // end all
    Ã¹¹ø° RoseThread.java¸¦ ¼³¸íÇÏÀÚ¸é ´ÙÀ½°ú °°´Ù.
   ¨ç 1ÁÙÀÇ import  ¹®ÀåÀº Date¶ó´Â  Å¬·¡½º¸¦ importÇϱâÀ§Çؼ­
»ç¿ëµÇ´Â    °ÍÀº    ´©±¸³ª    ¾Ë°ÚÁö¸¸,    ±×    ¿ëµµ´Â    13ÁÙÀÇ
current.getSecond()¿¡¼­ ÇöÀç ½ÇÇàµÇ°í ÀÖ´Â ¾²·¹µåÀÇ ÇöÀç  ½Ã°¢À»
ÃÊ´ÜÀ§·Î ¾Ë·ÁÁÖ±â À§Çؼ­ÀÌ´Ù.  ±×·¡¾ß¸¸, ÁøÂ¥·Î ¸ÖƼ¾²·¹µå°¡  ¾î
¶² °ÍÀÎÁö¸¦ ¾Ë ¼ö Àֱ⠶§¹®ÀÌ´Ù.
   ¨è 3ÁÙÀÇ  extends Thread¸¦  ÁÖ¸ñÇÏÀÚ.  RoseThread Ŭ·¡½º´Â
ThreadŬ·¡½º·ÎºÎÅÍ È®ÀåµÈ(»ó¼Ó¹ÞÀº) Ŭ·¡½ºÀÌ´Ù.  µû¶ó¼­ Thread
Ŭ·¡½ºÀÇ ÀνºÅº½ºº¯¼ö¿Í ¸Þ½îµå¸¦ ´Ù »ç¿ëÇÒ ¼ö ÀÖ°Ô µÇ´Â °ÍÀÌ´Ù.
   ¨é ¨ç¿¡¼­ RoseThread°¡ Thread¿¡¼­ »ó¼Ó¹Þ¾Ò´Ù°í  ÇßÀ¸´Ï, ´ç
¿¬È÷ superŬ·¡½º´Â Thread°¡ µÉ °ÍÀÌ°í, 7¹ø°  ÁÙÀÇ super(string)
Àº  ThreadŬ·¡½ºÀÇ  ÄÁ½ºÆ®·°ÅÍ  Thread(String  str)À»   È£ÃâÇÏ¿©
Thread¸¦ »ý¼ºÇÏ´Â °ÍÀÌ µÈ´Ù.
   ¨ê 10¹ø° ÁÙÀÇ run()Àº ThreadÀÇ ½ÉÀåºÎ¶ó°í ÇÒ ¼ö  ÀÖ´Â °÷ÀÎ
µ¥, ÀÌ°÷¿¡¼­   ¾²·¹µå¸¦ ÀÌ¿ëÇÑ  ¸ðµç 󸮰¡   ÀÌ·ç¾îÁö´Â °÷ÀÌ´Ù.
run()¸Þ½îµå´Â ThreadÀÇ run()¸Þ½îµå¿Í overrideµÇ¾î »ç¿ëµÈ´Ù.
   ¨ë 12¹ø° ÁÙºÎÅÍ 17¹ø° ÁÙ±îÁö´Â ½ÇÁ¦  ¾²·¹µå¸¦ ÀÌ¿ëÇÏ¿© ²É
Á¡À» º¸´Â °÷Àε¥, °¢  ¾²·¹µåµéÀº for¹®ÀåÀÌ 10¹ø ¼öÇàÇϸ鼭  ²ÉÀÙ
À» Çϳª¾¿ µû´Â ÀÛ¾÷À» ÇÑ´Ù. ±×¸®°í º¯´ö½º·´°Ôµµ ¹«ÀÛÀ§·Î ÃßÃâµÈ
°ª¸¸Å­ °¢ ¾²·¹µå´Â Àá½Ã ÈÞ½ÄÀ» °®´Â´Ù.
   ¨ì 14¹ø° ÁÙºÎÅÍ 16¹ø° ÁÙ±îÁö´Â Ȥ½Ã¶óµµ  ¹ß»ýÇÒ Áö ¸ð¸£´Â
¿¹¿Ü»óȲ¿¡ ´ëºñÇÏ´Â °ÍÀε¥, ÀÌ  ºÎºÐÀº ´ÙÀ½ Àå¿¡¼­  ÀÚ¼¼È÷ ´Ù·é
´Ù.
   ¨í 19¹ø° ÁÙÀº ¸¶Áö¸·¿¡ ¶â¾îÁø ²ÉÀÙÀÇ  ¾²·¹µåÀÇ À̸§À» ¾ò±â
À§ÇÑ ¹®ÀåÀÌ´Ù. getName()Àº Thread  Å¬·¡½ºÀÇ ¸Þ½îµå·Î ThreadÀÇ
À̸§À» String °ªÀ¸·Î ¸®ÅÏÇØÁØ´Ù. ÀÌ ºÎºÐÀÇ °á°ú´Â ¿©·¯ºÐÀÌ »ó»ó
ÇÏ´Â °Í°ú´Â ´Ù¸¥ °á°ú°¡ ³ª¿Ã °ÍÀε¥, ±â´ëÇغ¸½Ã¶ó.
   ¨î  20¹ø°  ÁÙÀº   ¸¶Áö¸· °á°ú¸¦   Ãâ·ÂÇÏ´Â  ÁÙÀÌ´Ù.   À̷νá
RoseThread Ŭ·¡½ºÀÇ µ¿ÀÛÀº ¿Ï°áµÇ´Â °ÍÀÌ´Ù.

   µÎ¹ø° ¿¹Á¦´Â ²ÉÁ¡À» º¸±â À§ÇØ  RoseThread Ŭ·¡½ºÀÇ ¾²·¹µå
¸¦ È£ÃâÇÏ¿©  »ç¿ëÇÏ´Â main()  ¸Þ½îµå°¡  µé¾îÀÖ°í ½ÇÁ¦  ½ÇÇàµÇ´Â
LoveThread.javaÀÌ´Ù.
   01: class LoveThread {
   02:     public static void main (String args[]) {
   03:          new RoseThread("»ç¶ûÇÑ´Ù").start() ;
   04:          new RoseThread("±â´Ù¸°´Ù").start() ;
   05:          new RoseThread("Æ÷±âÇÑ´Ù").start() ;
   06:     }
   07: }

   ¨ç 1¹ø° ÁÙÀº ¿ì¸®°¡ ²ÉÁ¡À» ½ÃÀÛÇÏ±â  À§ÇÑ LoveThread Ŭ·¡
½º¸¦ ¼±¾ðÇÏ´Â ºÎºÐÀÌ´Ù.
   ¨è 2¹ø° ÁÙÀº  ¾Õ¿¡ 3Àå¿¡¼­ ÇÁ·Î±×·¥ÀÇ  ±¸Á¶¿¡¼­ ´Ù·ç¾úµíÀÌ
½© ÇÁ·ÒÇÁÆ® »ó¿¡¼­ ½ÇÇà°¡´ÉÇÑ main() ¸Þ½îµå¸¦ ¸¸µå´Â ºÎºÐÀÌ´Ù.
   ¨é 3¹ø° ÁÙºÎÅÍ 5¹ø° ÁÙ±îÁö´Â °¢°¢ "»ç¶ûÇÑ´Ù", "±â´Ù¸°´Ù", "
Æ÷±âÇÑ´Ù" À̶ó´Â À̸§À» °¡Áö´Â  RoseThreadÀÇ °´Ã¼¸¦ ¸¸µé°í, °¢
±â °´Ã¼ÀÇ start() ¸Þ½îµå¸¦ ÀÌ¿ëÇØ °¢±â ÁÖ¾îÁø  ¾²·¹µå¸¦ µ¿ÀÛ½ÃÅ°
´Â ¹®ÀåµéÀÌ´Ù.
   ¨ê ¾ÕÀÇ RoseThread.java ºÐ¼®À» À¯½ÉÈ÷ »ìÆ캻 »ç¶÷Àº ±× ¾È¿¡
start() ¸Þ½îµå°¡ ¾ø´Ù´Â °ÍÀ» ´«Ä¡Ã«À» °ÍÀÌ´Ù. ±×·³ ´ç¿¬È÷ ¿¡·¯°¡
³ª¾ß ÇÔ¿¡µµ ºÒ±¸ÇÏ°í, ¿¡·¯°¡ ¹ß»ýÇÏÁö ¾Ê´À´Ù. ¿Ö³Ä¸é  ½´ÆÛŬ·¡½º
ÀÎ Thread Ŭ·¡½ºÀÇ start()¸Þ½îµå´Â this ThreadÀÇ  run() ¸Þ½îµå¸¦
È£ÃâÇϱâ·Î µÇ¾î Àֱ⠶§¹®ÀÌ´Ù.

   ÀÚ ÀÌ·¸°Ô ¿¹Á¦¸¦ ºÐ¼®ÇØ º¸¾ÒÀ¸´Ï, ½ÇÇà½ÃÄÑ¾ß ÇÒÅÙµ¥, ´Ùµé ¾Æ
½Ã°ÚÁö¸¸, ´Ù½Ã Çѹø ÄÄÆÄÀÏÇÏ´Â ¹æ¹ý°ú ½ÇÇà¹æ¹ýÀ» Àû¾î º¸¸é ´ÙÀ½
°ú °°´Ù.
   ¨ç javac RoseClass.java
   ¨è javac LoveClass.java
   ¨é java LoveClass
   ±×·¯¸é ±×³¯ ±×³¯ÀÇ ¿î¼¼¿¡ µû¶ó ´ÙÀ½°ú °°Àº °á°ú°¡ ³ª¿Ã °ÍÀÌ
´Ù. ÇÊÀÚ´Â ³«°üÀûÀ¸·Î ¼¼»óÀ»  »ì¾Æ°¡±â ¶§¹®¿¡ "»ç¶ûÇÑ´Ù" ¾²·¹µå
°¡ Á¦ÀÏ ¸¶Áö¸·¿¡ ³ª¿Â °ÍÀ» Ãâ·Â¿¹Á¦·Î ½Æ´Â´Ù.
     0  ±â´Ù¸°´Ù 28
     0  »ç¶ûÇÑ´Ù 28
     0  Æ÷±âÇÑ´Ù 28
     1  Æ÷±âÇÑ´Ù 28
     1  »ç¶ûÇÑ´Ù 28
     2  »ç¶ûÇÑ´Ù 28
     1  ±â´Ù¸°´Ù 28
     2  ±â´Ù¸°´Ù 28
     2  Æ÷±âÇÑ´Ù 28
     3  ±â´Ù¸°´Ù 28
     4  ±â´Ù¸°´Ù 28
     5  ±â´Ù¸°´Ù 28
     3  »ç¶ûÇÑ´Ù 28
     6  ±â´Ù¸°´Ù 28
     7  ±â´Ù¸°´Ù 28
     3  Æ÷±âÇÑ´Ù 28
     8  ±â´Ù¸°´Ù 28
     4  Æ÷±âÇÑ´Ù 28
     5  Æ÷±âÇÑ´Ù 28
     4  »ç¶ûÇÑ´Ù 28
     9  ±â´Ù¸°´Ù 28
     6  Æ÷±âÇÑ´Ù 28
     ¼±Åà !! => ±â´Ù¸°´Ù
     5  »ç¶ûÇÑ´Ù 28
     7  Æ÷±âÇÑ´Ù 28
     6  »ç¶ûÇÑ´Ù 28
     7  »ç¶ûÇÑ´Ù 28
     8  Æ÷±âÇÑ´Ù 28
     8  »ç¶ûÇÑ´Ù 28
     9  Æ÷±âÇÑ´Ù 28
     ¼±Åà !! => Æ÷±âÇÑ´Ù
     9  »ç¶ûÇÑ´Ù 28
     ¼±Åà !! => »ç¶ûÇÑ´Ù
   À§¿¡ º¸ÀÌ´Â Ãâ·Â°á°ú´Â ´ÙÀ½°ú °°´Ù.
   Ã¹¹ø° Ä®·³ÀÇ ¼ýÀÚ´Â ¸î¹ø° Àå¹Ì²ÉÀ»  ¶â¾î³Â´Â°¡¸¦ °¡¸®Å°´Â
¼ýÀÚÀÌ´Ù. µÎ¹ø° Ä®·³ÀÇ ¹®ÀÚ¿­Àº  ¾Õ¿¡¼­ LoveThread Ŭ·¡½º¿¡¼­
»ý¼ºÇÑ RoseThreadÀÇ ¾²·¹µå °´Ã¼ÀÇ À̸§µéÀÌ´Ù. ±×¸®°í ¼¼¹ø° Ä®
·³Àº ÇöÀç ÀÛµ¿ÁßÀÎ ÀÛ¾÷ÀÇ ½Ã°¢ÀÇ ÃÊ(Second)¸¦ ±¸ÇØ Ãâ·ÂÇÑ °ÍÀÌ
´Ù.
   ´ÙÀ½°ú °°Àº ¸î°¡Áö Àǹ®Á¡ÀÌ »ý°åÀ» °ÍÀÌ´Ù.
   ¨ç ½ÃÀÛÀº ºÐ¸íÈ÷ »ç¶ûÇÑ´Ù,  ±â´Ù¸°´Ù, Æ÷±âÇÑ´Ù ¼ø¼­´ë·Î ÇÏ°Ô
Çߴµ¥, óÀ½ °á°úºÎÅÍ°¡ ±×·¸Ä¡ ¸øÇÏ´Ù.
   ¨è È­¸é¿¡ Ãâ·ÂµÈ °á°ú´Â 1ÃÊ ÀÌ»ó ¼Ò¿äµÇ´Âµ¥  ¾î¶»°Ô °°Àº 28
Ãʸ¸ Ãâ·ÂµÇ´Â°¡ ?
   ¨é °°ÀÌ ½ÃÀÛÇÑ ÀÛ¾÷Àε¥, ¾î¶² ÀÛ¾÷Àº ÀÏÂï  ³¡³ª°í, ³ªÁß¿¡ ³¡
³ª°í ÇÒ ¼ö Àִ°¡ ?
   ¨ê ¾î¶² ¾²·¹µå´Â °è¼ÓÇؼ­ Àå¹Ì²ÉÀÙÀ» ¶â¾î³»°í ¾î¶² ¾²·¹µå´Â
ÇÑÂüÈÄ¿¡¾ß Àå¹Ì²ÉÀÙÀ» ¶â¾î ³¾ ¼ö Àִ°¡ ?
   ¨ë ¾ÕÀÇ ¼Ò½º¿¡¼­´Â  ºÐ¸íÈ÷ ¸¶Áö¸·¿¡  ³¡³ª´Â ¾²·¹µå¸¸  "¼±ÅÃ"
¸¦   Ãâ·ÂÇÒ °Í·Î  ¿¹»óÇߴµ¥,  ¼¼°³ÀÇ ¾²·¹µå¸¶´Ù   "¼±ÅÃ"À»
Ãâ·ÂÇß´Ù.

   ÀÌ·± Á¤µµÀÇ Àǹ®Àº ´©±¸³ª ´Ù  °¡Áö°í ÀÖÀ» °ÍÀÌ´Ù. ±âÁ¸ÀÇ ¿¬
¼ÓÀûÀÎ(Sequential) ÇÁ·Î±×·¥ ±¸Á¶·Î´Â »ó»óÇÒ ¼ö ¾ø´Â ÀÏÀÌ  °£´ÜÇÏ
°Ô ±¸ÇöµÇ¾ú±â ¶§¹®¿¡ ´õ¿í ´õ ÀÌ»óÇÒ °ÍÀÌ´Ù. ¹°·Ð ÀÚ¹Ù¸¦ ÅëÇØ Ã³
À½ ÇÁ·Î±×·¥À» ÇÏ´Â »ç¶÷Àº ±×³É ±×·² ¼öµµ ÀÖ°Ú±¸³ª ÇÏ°ÚÁö¸¸ !

   ÀÌÁ¦ ¾²·¹µå Ŭ·¡½ºÀÇ Æ¯¼º°ú ¸Þ½îµå¸¦ »ìÆ캽À¸·Î½á ÀÌ·± Áú¹®
¿¡ ´äÇغ¸µµ·Ï ÇÏÀÚ.
   ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤
   ¦¢ÀÌ ±ÛÀº ÇÊÀÚ¿ÍÀÇ µ¿ÀÇ ¾øÀÌ »ó¾÷ÀûÀ¸·Î   ¦¢
   ¦¢                                        ¦¢
   ¦¢¸®Æ÷½ºÆõǰųª ÀÌ¿ëµÉ ¼ö ¾ø½À´Ï´Ù.      ¦¢
   ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥

                 ½Å¼¼´ë ¾ð¾î, ÀÚ¹Ù Àü¹®°¡¸¦ ²Þ²Ù´Â

                 ÀáÅÊÀÌ 3Àιæ, ½ÅÁ¤È£, Á¦°¥¿µ, Á¶±¹



HomePage Backward Forward Post Reply List
1998 by swindler