¾È³çÇϼ¼¿ä À̰游 ÀÔ´Ï´Ù.
ÈÞ¿ì.. ³Ñ ¹Ù»Ú³×¿ä.
°£´ÜÈ÷ ÀúÈñ °ÔÀÓ¿£ÁøÀÇ ±¸¼º¿¡ ´ëÇØ ¿¹±â¸¦ ÇØµå¸®¸é
¿ì¼± À¯Àú³ª NPC°¡ ÇÏ´Â ÀÏÁß¿¡ ±×³É ÀÏȸ¼ºÀΰÍÀº
ActionÀ̶ó°í Çß°í ¿©·¯°úÁ¤À» °ÅÄ¡°Å³ª ½Ã°£ÀÌ ¿À·¡°É¸®´Â ÀÏ
¾Æ´Ï¸é ´Ù¸¥ Ç÷¹À̾î¿Í ¿¬°ü¼ºÀ» °¡Áö´Â ÀÏÀº
PlanÀ̶ó°í Çß½À´Ï´Ù.
±×¸®°í ActionÀº Character ClassÀÇ ¸â¹öÇÔ¼ö·Î ¸¸µé¾î µÎ¾ú±¸
PlanÀº PlanManager¸¦ µû·Î µÎ¾ú½À´Ï´Ù.
PlanÀÚü´Â ±âº»ÇüÀ» µÎ¾î¼­ PlanManager¿¡ ³Ö¾ú´Ù »°´Ù ÇÒ¼ö ÀÖ´Â
ÇüÅ·Π¸¸µé¾ú½À´Ï´Ù.
PlanManagerÀÇ Thread´Â À¯ÀúÀÇ ¼ö°¡ ´Ã¾î³ª¸é ´Ã¸± ¼ö ÀÖ°Ô ´Ã¾î³¯ ¼ö ÀÖ´Â
±¸Á¶·Î Â¥ µÎ¾ú°í ParseThread¿¡¼­´Â ÇÁ·ÎÅäÄÝ ¸Þ½ÃÁö¸¦ ó¸®ÇÏ°Ô µÇÁÒ.
¹°·Ð ParseThreadµµ ¿©·¯°³¸¦ µ¿½Ã¿¡ ¶ç¿ì°í ÀÖ½À´Ï´Ù.
ParseThread¿¡¼­ ActionÀ» ¼öÇàÇÏ´ø°¡ ¾Æ´Ï¸é PlanÀ» Ãß°¡ÇØÁÖ´ø°¡ Çϴ 
¿ªÇÒÀ» ÇÏÁÒ.
ÇöÀç´Â ¸Êº°·Î ³ª´©Áø ¾Ê¾ÒÁö¸¸ ¸Êº°·Î µû·Î ³ª´²¼­ ºÐ»ê ¼­¹ö ±¸Á¶·Î ó¸®ÇÒ ¼ö
ÀÖµµ·Ï ÇÏ´Â ºÎºÐÀ» ±¸ÇöÇÒ ¿¹Á¤ÀÔ´Ï´Ù.
ÀߵǾî¾ß ÇÒÅÙµ¥..
±×·³..
__
À̰游

¼­¹öÀÇ ÇÁ·ÎÅäÄÝÀ» ¼³°èÇÒ¶§ ÇϳªÀÇ ¾ÆÀ̵ð¾îÁß Çϳª°¡
ij½ÌÀ̾ú½À´Ï´Ù.
À¥¼­¹öÀÇ Last Modify time °ú °°Àº °è³äÀ¸·Î
Ŭ¶óÀÌ¾ðÆ®¿¡¼­ ¾î¶² ÀڷḦ °¡Áö°í ÇØ´çÀÚ·áÀÇ Á¤º¸¸¦ ÁÙ¶§
ÀÚ·áÀÇ flag°ªÀ» °°ÀÌ ÁÖ´Â °Ì´Ï´Ù. ±×¸®°í ¼­¹ö³»¿¡¼­ ÀÚ·á°¡ º¯°æµÇ¾ú´Ù¸é
ÇØ´ç flag¸¦ ++½ÃÄÑÁÖ´ø°¡Çؼ­ flag°ªÀ» ¹Ù²Ù´Â°ÍÀÌÁÒ.
±×¸®°í Ŭ¶óÀÌ¾ðÆ®¿¡¼± ÇØ´çÇÏ´Â °ªÀ» ¿äûÇϱâÀü¿¡ Ŭ¶óÀÌ¾ðÆ®¿¡¼­
ÀÌÀü¿¡ ¹Þ¾Ò´ø ÇØ´ç ÀÚ·áÀÇ flag°ªÀ» °¡Áö°í ÀÌ°Ô ¹Ù²î¾ú´ÂÁö Çѹø ¸ÕÀú
Äõ¸®¸¦ ÇØº¸´Â°ÍÀÌÁÒ. ±×·¡¼­ flag°¡ ¹Ù²î¾úÀ¸¸é ±×¶§ ´Ù½Ã ÇØ´ç °ªÀ»
Äõ¸®ÇÏ´Â °Ì´Ï´Ù. ¹Ù²ï flag°ª°ú ÇÔ²² ¸»ÀÌÁÒ.
ÀÌ·±½ÄÀ¸·Î ¸¹Àº ½ÎÀÌÁ °¡Áø ±×¸®°í º¯°æ ÁֱⰡ ª°Å³ª ¹«ÀÛÀ§ÀûÀÎ µ¥ÀÌÅÍ
¿¹¸¦ µé¸é ij¸¯ÅÍÀÇ ¿ÜÇüÁ¤º¸°°Àºµ¥ ¾µ·Á°í »ý°¢À» Çߴµ¥.
ij¸¯ÅÍÀÇ ¿ÜÇüÁ¤º¸°¡ 50¹ÙÀÌÆ®¸¦ ³ÑÁö ¾Ê´Â´Ù¸é ¾È¾²´Â°ÍÀÌ ´õ ³ªÀ»°ÍÀ̶ó´Â
°á·ÐÀÌ ³ª¿Ô½À´Ï´Ù. TCPÇì´õ½ÎÀÌÁî°¡ 28¹ÙÀÌÆ®¶ó¸é ¹èº¸´Ù ¹è²ÅÀÌ ´õÄ¿Áø °á°ú°¡
³ª¿Ã ¼öµµ ÀÖ´Ù´Â °ÅÁÒ.. -_-; 
¾Æ¹«Æ° Á» Å«µ¥ÀÌÅ͸¦ ¹Þ´Â°æ¿ì °í·ÁÇØº¼¸¸ÇÑ ¹®Á¦¶ó°í »ý°¢ ÇÕ´Ï´Ù.
__
À̰游 
µ¥µå¶ôÀ̶õ ³ðÀ» ÷À¸·Î °æÇèÇß½À´Ï´Ù.
¼­¹ö°¡ ÀÚ²Ù ¾öÇѵ¥¼­ ¸ØÃ߱淡.
ÇÏ·çÁ¾ÀÏ ¼Ò½º¸¦ µé¾î´Ùº¸±¸ ÇÁ¸°Æ®Çؼ­ º¸±¸
ÁÙÃİ¡¸é¼­ º¸±¸ ±×·¨½À´Ï´Ù.
¿øÀÎÀÌ ¸Ö±î..
ÈæÈæ..
°á±¹ µ¥µå¶ôÀ¸·Î ÆÇ¸íµÇ¾ú½À´Ï´Ù.
Á×À½ÀÇ ¹ö±× µ¥µå¶ô..
µÎ°³ÀÇ ¾²·¹µå¸¦ °°ÀÌ ºÁ¾ßÁö
Çϳª¾¿¸¸ µû·çºÃ´õ´Ï..
´ç¿¬È÷ ÀÌ»óÀÌ ¾øÁÒ.
¾²·¹µå¸¦ ¾µ·Á¸é ¸Ó¸®µµ º´·Ä·Î µ¹¾Æ¾ß ÇÑ´Ù´Â..
Çã°Æ..
³» ½Ã°£ µ¹¸®µµ!!!!
±×·¡µµ °¡Àå È®½ÇÇÑ µð¹ö±ë ¹æ¹ýÀº printf¶ó´Â.. Çã°Æ..
ÇÏÁö¸¸ ÁÁÀº °æÇèÀ» Çß´Ù´Â °É·Î À§¾ÈÀ» .. ÈæÈæ..
__
À̰游. 
µ¥µå¶ôÀ̾ú´Ù´Ï... ¾ÈµÆ½À´Ï´Ù.
¾²·¹µå¸¦ ¸¹ÀÌ ¾²¸é Ç×»ó µ¥µå¶ôÀ» ½Å°æ½á¾ß°ÚÁö¿ä.. ¤Ì¤Ì
Áö±Ý Àúµµ ¾²·¹µå¸¦ ÇÑ ´Ù¼¸°³ Á¤µµ µ¹¸±·Á±¸ Çϴµ¥..
µ¥µå¶ô¿¡ ´ëÇÑ ¹«Áö¸·ÁöÇÑ µÎ·Á¿òÀÌ... Çæ..
ÀÏ´Ü ¼øÈ¯ ±â´Ù¸²Àº ´ëÃæ ¾ø´Â °Å °°¾Æ¼­ Çѽø§
³ùÁö¸¸.. ¾îµð¼­ °É¸±Áö È®½ÅÇÒ ¼ö°¡ ¾øÁÒ.. ¤Ì¤Ì

±×·³ µ¥µå¶ôÀ» ¾îÂî ÇØ°áÇϼ̴ÂÁö ±â´Ù¸®°Ú½À´Ï´Ù..
(Àú ³ª»Û³ð°°ÁÒ? ³×.. ¸Â½À´Ï´Ù. ³ª»Û³ðÀÔ´Ï´Ù... Èê..)
±×·³.. 
¹ö±×¸¸µç°Ô ÀÚ¶ûÀº ¾Æ´ÏÁö¸¸.-_-;
³ªÁß¿¡ ÀÌ·±½Ç¼ö ÇÏ´Â ºÐÀÌ ¾ø±æ ¹Ù¶ó¸ç ¾¹´Ï´Ù.
¾Ë°í ³ª¸é °£´ÜÇÔ ¹®Á¦´Ï±î¿ä.
Àúµµ µ¥µå¶ôÀ» ±³°ú¼­¿¡¼­¸¸ º¸°í ÷ ´çÇØ º¾´Ï´Ù.
¿ì¼± ij¸¯ÅͰ¡ ´©±º°¡¸¦ Ŭ¸¯Çϸé ÀüÅõ°¡ ½ÃÀ۵ǰí ij¸¯ÅÍÀÇ ÀüÅõ ¾²·¹µå°¡
µ¹°Ô µË´Ï´Ù.
±×¸®°í ¸ó½ºÅʹ Ÿ°ÙÆÃ ´çÇϸé ÇØ´çÇÏ´Â ¾Ö¸¦ °ø°ÝÇϰÚÁÒ? À̰͵µ ¸ó½ºÅÍ
ó¸®ÇÏ´Â ¾²·¹µå¿¡¼­ 󸮸¦ ÇØÁÝ´Ï´Ù.
±Ùµ¥ ¸ó½ºÅÍ´Â ÀÚ½ÅÀÌ Å¸°ÙÆÃ ´çÇϸé Ÿ°ÙÇÑ ³ðÀ» ÂϾư¡¼­ ¶§¸³´Ï´Ù.
ÀÌ µÎ ¾²·¹µå°£ÀÇ ¹®Á¦¿´´Âµ¥.
¿ì¼± ij¸¯ÅÍÂÊÀÇ ¾²·¹µå´Â ij¸¯ÅÍ Á¤º¸¸¦ º¸±âÀ§ÇØ ¶ôÀ» °É°í
Áß°£¿¡ Ÿ°Ù Á¤º¸¸¦ º¸±â À§ÇØ ¶Ç ¶ôÀ» °Ì´Ï´Ù.
¸ó½ºÅÍ´Â ÀÚ½ÅÀÇ À§Ä¡Á¤º¸µîÀ» ¼öÁ¤Çϱâ À§ÇØ ¶ôÀ» °É°í
Ÿ°ÙÇÑ Ä³¸¯ÀÇ À§Ä¡Á¤º¸µîÀ» º¸±â À§ÇØ Ä³¸¯Å͸¦ ¶ô ÇÕ´Ï´Ù.
ÀÌÁ¦ µÎ¸¶¸®¸¸ ÀÖ´Ù°í °¡Á¤ÇßÀ»¶§. 
º¸Á®..
ÆíÀÇ»ó ij¸¯Å͸¦ A ¸ó½ºÅ͸¦ B¶ó°í ÇÑ´Ù¸é
ÀüÅõ ¾²·¹µå : A¸¦ ¶ô -> ó¸® -> Ÿ°ÙÁ¤º¸¸¦ Âü°íÇϱâÀ§ÇØ B¸¦ ¶ô
¸ó½ºÅÍ ¾²·¹µå : B¸¦ ¶ô -> ó¸® -> À§Ä¡Á¤º¸¸¦ º¸±âÀ§ÇØ A¸¦ ¶ô
ÀÌ·¸°Ô µÇ¸é ÀüÅõ ¾²·¹µå¿¡¼± A¸¦ ¶ô °Ç »óÅ¿¡¼­ B¸¦ ¶ôÅ·Çϱâ À§ÇØ
±â´Ù¸®°í ÀÖ°í ¸ó½ºÅÍ ¾²·¹µå¿¡¼± B¸¦ ¶ô°Ç»óÅ¿¡¼­ A¸¦ ¶ôÅ·Çϱâ À§ÇØ
±â´Ù¸®°í ÀÖ´Â °ÍÀÌÁÒ.. ÀÌ°Ô ¹Ù·Î µ¥µå¶ôÀÔ´Ï´Ù. -_-;
ÀÌ°Ô µ¿½Ã¿¡ ó¸®µÇ¸é ¾î´À¼ø°£¿¡ µÎ ¾²·¹µå°¡ ¸ØÃç ¹ö¸®°í ÇØ´ç ¿ÀºêÁ§Æ®¸¦
ÂüÁ¶ÇÏ´Â ¸ðµç ¾²·¹µåµéÀº ¼­¹ö¸³´Ï´Ù.
ÇØ°á ¹æ¹ýÀº ¶ôÀ» °Ç »óÅ¿¡¼­ ¶Ç´Ù½Ã ¶ôÀ» °Å´Â ÀÏÀÌ ¾øÀ¸¸é µË´Ï´Ù.
Áï ÀüÅõ¾²·¹µå¸¦ A¸¦ ¶ô -> ó¸® -> A¸¦ ¾ð¶ô-> B¸¦ ¶ô -> ÇÊ¿ä Á¤º¸¸¦ º½->B¸¦
¾ð¶ô -> A¸¦ ´Ù½Ã ¶ô
¸ó½ºÅÍ ¾²·¹µåµµ ¸¶Âù°¡ÁöÀÔ´Ï´Ù. -_-;
ÈæÈæ..
__ 
À½³Ä.. °æ¸¸´Ô ÇØ°áÇϼ̳ªº¸±º¿ä.

ÀÏ´Ü µ¥µå¶ôÀÇ ÇÊ¿äÁ¶°ÇÀº 4°¡ÁöÀÔ´Ï´Ù..

ù¹øÂ°·ç, »óÈ£¹èÁ¦... Áï, ¶óÅ·ÀÌ µÇ´Â°ÍÀ̰í..
µÎ¹øÂ°°¡ ºñ¼±Á¡.. ¼±Á¡À» Çã¶ôÇÏÁö ¾Ê´Â´Ù..
¼¼¹øÂ°°¡ Àâ°í ±â´Ù¸²... ¸®¼Ò½º¸¦ Àâ°í ³õÁö ¾Ê´Â°ÅÁÒ.
³×¹øÂ°°¡ ¼øÈ¯±â´Ù¸²ÀÔ´Ï´Ù.. µÎ°³ ÀÌ»óÀÇ ¾²·¹µå°¡
¼­·Î Çϳª¾¿ Àâ°í ´Ù¸¥ ¸®¼Ò½º¸¦ ¿øÇÏ´Â °ÍÀÌÁÒ.

Á¦°¡ º¸±â¿£ ÀÌ Áß¿¡¼­¤Ç ¼øÈ¯±â´Ù¸²À» ¸·´Â °ÍÀÌ °¡Àå ½¬¿î
¹æ¹ýÀ̶ó°í »ý°¢µË´Ï´Ù.
´Ùµé ±×·¸°Ô ¾Æ½Ã°ÚÁÒ?

µû¶ó¼­, ¶óÅ·À» ÇÑ ÈÄ °¡´ÉÇÏ¸é ¹Ù·Î ¶ôÀ» Ç®¾îÁÖ°í.. 
¶Ç ÇÊ¿äÇÏ´Ù¤¡¸é ´Ù½Ã ¶ôÀ» °É¾îÁÖ´Â °ÍÀÌÁÒ.

ÀÏ´Ü.. ÀÌ·¸°Ô Çϰï Àִµ¥..
¾îµð¼­ °É¸±Áö´Â Å×½º¸£¸¦ ÇØºÁ¾ß... ÂÁ..

¼­¹ö ÇÁ·Î±×·¡¸ÓÀÇ ºñ¾Ö¶ó°í³ª Çұ? Èê. 
¹Ø¿¡ ±Û³»¿ëÁß ÇØ´çÁ¤º¸¸¦ º¼¶§
¶ôÀ» °Ç´Ù°í Çϴµ¥/
±×°Ç ¾îÇø®ÄÉÀÌ¼Ç ¼öÁØ¿¡¼­ ¶ôÀ» °Ç´Ù´Â ÀǹÌÀΰ¡¿ä.
¾Æ´Ô ½Ã½ºÅÛÀÚü¿¡¼­ ¶ôÀ» °Å´Â°Ç°¡¿ä..
´Ù½Ã¸»ÇØ ÇÁ·Î±×·¡¸Ó°¡ ¶ôÀ» °Ç¾Ö±â¸¦ Çϴ°ǰ¡¿ä
¾Æ´Ô ½Ã½ºÅÛÀÌ ¸®¼Ò½º¸¦ °É¸é ½º½º·Î ¶ôÀ» °Å´Â°ÇÁö... 
Àú ¶ôÀÌ Á¦°¡ ¾Æ´Â ¶ôÀÎÁö ¸ô¶óµµ ¾Æ¸¶ ¾²·¹µå¿¡¼­ ¾²´Â°Å¸é mutex ·Î ¶ô°Å´Â°Å
°°Àºµ¥ À½.

¼­·Î ´Ù¸¥ ¾²·¹µå¿¡¼­ µ¥ÀÌÅ͸¦ º¸È£ÇØ¾ß ÇÒ Çʿ䰡 ÀÖÀ» ¶§ ¾¹´Ï´Ù.

À½ ÇÁ·Î±×·¥Àº ÀüüÀûÀ¸·Î º¼ ¶§ Àбâ/¾²±â·Î ÀÌ·ç¾îÁ® ÀÖ´Ù°í º¼ ¼ö Àִµ¥,
(Á¦ »ý°¢ ÀÔ´Ï´Ù. -_-) ¾²±â¿¡ ¿µÇâÀ» ¹Þ´Â °÷ÀÌ°í ¶ÇÇÑ ¿©·¯ ¾²·¹µå¿¡¼­ °ø
À¯µÉ ºÎºÐÀ̶ó¸é mutex °¡ ÇÊ¿äÇÕ´Ï´Ù.

¿¹¸¦ µé¾î Àü¿ªº¯¼ö°¡ Çϳª ÀÖ´ÙÇϰí ÀÌ Àü¿ªº¯¼ö´Â Àбâ/¾²±â µÑ´Ù ÇÏ´Â
º¯¼öÀ϶§, ¾²·¹µå ¼¼°³¸¦ µ¹·Á µÎ°³´Â ¾²±â¸¦ ´ã´çÇϰí Çϳª´Â Àб⸦ ÇÑ´Ù
°¡Á¤Çϸé, ¾²´Â µµÁß Àд ¾²·¹µå°¡ Àо ¿ô±æ °ÍÀ̰í, µÎ ¾²·¹µå°¡ ÇÔ²²
¾²·ÁÇØµµ ¿ô±æ °Ì´Ï´Ù. ±×·¡¼­ ¿ì¸®ÀÇ È£ÇÁÀÌÀÚ ±«¼ö mutex °¡ ÀÖ½À´Ï´Ù.

mutex ¸¦ Çϳª µÎ°í ÀÌ mutex ¸¦ lock Çϸé ÀÌ¹Ì lock ÀÌ µÇÁö ¾Ê¾Ò´Ù¸é,
´ÙÀ½ ÄÚµå·Î ³Ñ¾î°¡°í ÀÌ¹Ì ¶ôÀÌ µÇ¾î ÀÖ´Ù¸é ¶ôÀÌ Ç®¸± ¶§±îÁö ÇÁ·Î¼¼½º°¡
¸ØÃß¾î ÀÖ°Ô µË´Ï´Ù. À̰游´ÔÀÌ °æÇèÇϽе¥µå¶ôÀº ÃßÃøÇϰǵ¥,
thread1 ÀÌ blah_mutex ¿¡ ¶ôÀ» °Ç´ÙÀ½ thread1 ¿¡¼­ blah_mutex ¸¦ ¾ð¶ôÇϱâ
Àü¿¡ ´Ù½Ã blah_mutex ¿¡ ¶ôÀ» °Å½Åµí ÇÕ´Ï´Ù. ÀÌ°Ô µ¥µå¶ôÀÔ´Ï´Ù.

¸»¾¸µå¸°´ë·Î mutex °¡ ¶ôÀÌ µÇ¾î ÀÖ´Ù¸é, ´Ù½Ã lock À» ÇÒ¶§´Â ÇØ´ç mutex°¡
unlock ÀÌ µÇ±â Àü±îÁö´Â ÇÁ·Î¼¼½º°¡ ¸ØÃß¾î Àֱ⠶«½Ã·Õ µ¿ÀÏ ¾²·¹µå¿¡¼­ ¶ôÀ»
µÎ¹øÇÏ¸é µ¥µå¶ôÀÌ µÇ´Â °ÍÀÌÁö¿ä. ¾Æ´Ï¸é ¾Æ¾ê mutex ¸¦ ¾ð¶ô ÇÏ´Â ·çƾÀ»
°Ç³Ê ¶Ú´Ù°Å³ª (ÀúÀÇ °æ¿ì ¾ð¶ô ¾ÈÇϰí return ÇØ¼­ ½Ç¼öÇÏ´Â °æ¿ì°¡ ¸¹½À´Ï´Ù.
±×·¡¼­ goto ¸¦ Áñ°Ü¾²±âµµ.. -_-), ¾Æ¾ê ¾÷´Ù°Å³ª ÇÏ¸é µ¥µå¶ôÀÌ µÇ°ÚÁö¿ä.

±¸º»Çâ´ÔÀÌ Áú¹®ÇϽŠ½Ã½ºÅÛ ¶ôÀ̳Ä, ¾îÇø®Ä³ÀÌ¼Ç ¶ôÀÌ³Ä ÇÏ´Â °Í¿¡´Â ÈåÀ½.
posix thread(pthread)ÀÇ °æ¿ì user level mutex ¸¦ ±¸ÇöÇÑ °ÍÀ¸·Î ¾Ë°í ÀÖ½À
´Ï´Ù. À©µµ¿ìÀÇ °æ¿ì¿¡´Â Àß ¸ð¸£°Ú½À´Ï´Ù. T_T, ÇÏÁö¸¸ ¸¶Ä¡ ½Ã½ºÅÛ ¶ôÀΠ
°Í ó·³ µ¹¾Æ°£´Ù°í ´À³¢±ä ÇÕ´Ï´Ù. ¾î¶µç ¸ðµç ÇÁ·Î±×·¡¸Ó°¡ ÀÚü mutex
¸¦ ±¸Çö ÇÏ´Â °ÍÀº ÀÌ·¡Àú·¡ Á¤·Â³¶ºñ¶ó¼­, ÀÖ´Â mutex ¸¦ ¾²´Â°Ô ³´°ÚÁÒ.

// ¾Æ·¡´Â posix thread ¿ë ¿¹Á¦ ¼Ò½º ÀÔ´Ï´Ù. thread-safe ÇÑ global_buffer
// ¸¸µé±â Àε¥.. -_- ¸ñÀûÀÌ ¾ø´Â Äڵ屺¿ä..
pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
pthread_t thread1, thread2;

char global_buffer[5];

void *write(void *arg)
{
while (1)
{
// ¶ôÀ» °Ç´Ù 
pthread_mutex_lock(&mutex);

// global_buffer ¸¦ ¸¾ ³õ°í ±«·ÓÇôÁØ´Ù. -_-;
global_buffer[0] = 'h';
global_buffer[1] = 'a';
global_buffer[2] = 'h';
global_buffer[3] = 'a';
global_buffer[4] = '\0';

// ¶ôÀ» Ǭ´Ù
pthread_mutex_unlock(&mutex);
}
}

int main(int argc, char **argv)
{
// µÎ°³ÀÇ ¾²±â ¾²·¹µå »ý¼º
pthread_create(&thread1, NULL, write, NULL);
pthread_create(&thread2, NULL, write, NULL);

// µÎ°³ ¾²·¹µå°¡ terminate ÇÒ ¶§ ±îÁ¤ ±âµÑ¸°´Ù.
pthread_join(thread1, NULL);
pthread_join(thread2, NULL);

return 1;
}

À½.. ¾²·¹µå¸¸ °øÀ¯ÇÏ´Â °ÍÀ̶ó¸é Å©¸®Æ¼Äü½¼ÇÀ» ¾²´Â °ÍÀÌ
°¡Àå È¿À²ÀûÀÔ´Ï´Ù. Á¦ÀÏ °£´ÜÇÑ ³ðÀ̰ŵç¿ä.

ÀÌ ¾²·¹µå´Ï ¶ôÀÌ´Ï µ¥µå¶ôÀÌ´Ï ¸ðµÎ os ¿¡¼­ ³ª¿Â°ÍÀε¥..
¾²·¹µå¸¦ µ¹¸®´Ùº¸´Ï.. ÀÌ·± Àú·± ¹®Á¦°¡ ¸¹ÀÌ »ý±â³×¿ä.
Å×½ºÅÍ´ÔÀÌ ¾²·¹µå¸¦ ¾È¾²½Å´Ù±¸ Çϼ̴µ¥.. ^^;
¾î¶² ¸é¿¡¼­´Â ¾²·¹µå°¡ ´õ Á÷°üÀûÀÌ°í ÆíÇÏ´õ±º¿ä.
±×·¡¼­ ¾²·¹µå¸¦ ¸¹ÀÌ ¾²´Â ÆíÀÔ´Ï´Ù... ÈÞ~
ÇÏ¿©°£ ¾²·¹µå »ç¿ë½Ã µ¥µå¶ôÇÏ°í ¸î°¡Áö¸¸ »ý°¢Çϸé..
»ó´çÈ÷ À¯¿ëÇÕ´Ï´Ù...

Ȥ½Ã... reader-writer ±¸ÇöÇØ ³õÀ¸½ÅºÐ ÀÖÀ¸½Å°¡¿ä?
ÀÌ ³ðÀº ¾²¸é ¾²·¹µåÀÇ ¼º´ÉÀ» ÃÖ´ëÈ­ÇÒ ¼ö Àִµ¥..
±¸ÇöÇÏÀÚ´Ï.. Á» ½Ã°£ÀÌ °É¸®°í ½Å°æ½á¾ßÇÏ´Ï..
Ȥ½Ã ±¸ÇöÇϽźÐÀÌ °ø°³ÇÏ½Å´Ù¸é °¨»çÈ÷ »ç¿ëÇÒ 
¿ëÀǰ¡ Àִµ¥... ^^
ÈÄÈÊ.. ±×·³~ 
pthread ¿¡¼­´Â pthread_mutex_lock() Äݰú pthread_mutex_unlock() ÄÝ·Î
¹ÂÅØ½º¸¦ ´Ù·ç´Âµ¥, ´ÙÀ½°ú °°Àº ºÎºÐÀÌ ÀÖ±º¿ä. (¾ó¸¶³ª ½Å·Ú¼º Àִ°¡´Â
¸ð¸£°ÚÁö¸¸)

The pthread_mutex_lock function returns the following error code on erro
r
:

EINVAL the mutex has not been properly initialized.

EDEADLK
the mutex is already locked by the calling thread (``error

checking'' mutexes only). 
rror:

EBUSY the mutex could not be acquired because it was currently l
o
cked.

EINVAL the mutex has not been properly initialized.

The pthread_mutex_unlock function returns the following error code on er
r
or:

EINVAL the mutex has not been properly initialized.

EPERM the calling thread does not own the mutex (``error checkin
¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡
The pthread_mutex_destroy function returns the following error code on e
r
ror:

EBUSY the mutex is currently locked.

¹Ù·Î pthread_mutx_lock ÀÇ ¸®ÅÏ °ªÀä, EDEADLK À̶ó´Â ¸®ÅÏ °ªÀÌ
ÀÖ±º¿ä.

-ºñ¿± 
ÀÌ°Ç Á¦°¡ ±º´ë ´Ù³à¿À´Ï ¸¸µé¾îÁ® ÀÖ´õ±º¿ä. (4ÁÖÈÆ·Ã)
ÇÏÀÌÅÚ ¸ðµ¿È£È¸ ½Ã»ðÀÌÀÚ Á¦ ÈĹèÀÌ°í ¾ÆÅ¸³ª½Ã¾Æ ³×Æ®¿÷ ¿£Áø ´ã´ç È«±â±ºÀÌ
¸¸µé¾î ³õÀº°Çµ¥.. (ÂÍÀÖÀ½ ½Ã»ðÀÇ ±¼·¹¿¡¼­ ÇØ¹æµÉÁöµµ ¸ð¸¦..^^;)
LockÀ» ÇÒ ÀÚ·áµéÀ» LockingÇØÁÖ°í UnlockÇØÁÖ´Â ManagerÀÔ´Ï´Ù.
¹¹ ¿¿¸»¿¡ ÀÌ·±¸»ÀÌ ÀÖÁö ¾Ê½À´Ï±î?
ÇÁ·Î±×·¥¿¡¼­ ÀÔ±¸¿Í Ãⱸ´Â Á¼°Ô ¸¸µé¶ó´Â.. ^^;
Çѱºµ¥¼­ °ü¸®ÇÏ´Â °ÍÀÌÁÒ.
»ç½ÇÀº LockÂÊ¿¡ ¹ö±×°¡ ¸¹¾Ò´Âµ¥ LockÇØ¾ßÇϴµ¥ ¾ÈÇØÁØ ºÎºÐµµ ÀÖ°í
ÇØ¼­¸® MutexÀ» °ü¸®ÇÏ´Â Class¸¦ ¸¸µç°ÅÁÒ.
¿©±â¿¡ µð¹ö±×½Ã ·Î±×¸¦ ³²±â°Ô ÇØ¼­ ´ë·« ¾îµð¿¡¼­ Á×¾ú´ÂÁöµµ üũ °¡´ÉÇÕ´Ï´Ù.
Lock unlockÀº °ÅÀÇ ´ëºÎºÐÀÇ ¼Ò½º¿¡¼­ ´Ù ¾²±â ¶§¹®¿¡
µð¹ö±×½Ã À¯¿ëÇÏÁÒ.
¹°·Ð ÇÏ·í¹ã¸¸ µ¹¸®¸é ·Î±×ÆÄÀÏÀÌ ±â°¡ ´ÜÀ§·Î ³²Áö¸¸¿ä Èæ..
±×³É ³»ºÎ¿¡ mutex¸¦ LapingÇÏ°í ¶Ç ¸î°³¾¿ ¹¬¾î¼­ °ü¸®ÇÏ´Â ±â´ÉÀ» °¡Áø
ClassÀÔ´Ï´Ù. 
°æ¸¸´Ô ´äº¯ °¨»çµå¸³´Ï´Ù.

¸ð µ¿È£È¸ ½Ã»ðÀ̽Šȫ±â´ÔÀº ¾Æ¸¶µµ...
³×Æ®¿öÅ© µ¿È£È¸ÀÇ ÀÌÈ«±â(û¾Æ»ç¶û)´ÔÀΰŠ°°±º¿ä..
¹«¼·´Ù... ÇÏÀÌÅÚÀÇ Á¼À½ÀÌ... ¤Ð¤Ì
±×·±µ¥ È«±â´ÔÀº °ÔÁ¦µ¿ Ȱµ¿Àº ¾ÈÇϽóª º¸±º¿ä..^^;;

ÇÏ¿©°£, Àâ´ãÀº ±×¸¸Çϰí...
¹«·Á ±â°¡ ´ÜÀ§ÀÇ ·Î±×¶ó.. Àå³­ÀÌ ¾Æ´Ï±º¿ä..
ÀúÀÇ °æ¿ì´Â ¹ÂÅØ½º¸¦ ¾È¾²°í Å©¸®Æ¼Äü½¼ÇÀ» ÁÖ·Î ÀÌ¿ëÇϴµ¥..
õ¼ºÀÌ °ÔÀ¸¸¥ ÀúÇÑÅ×´Â µû·Î locking manager¸¦ ±¸ÇöÇÒ
»ý°¢ÀÌ ¾Èµéµí ÇÕ´Ï´Ù.. ǪÈý..
ÇϺΠ±¸Á¶ºÎÅÍ ¾ÈÀüÇÏ°Ô Å©¸®Æ¼Äü½¼ÇÀ» ·¦ÇÎÇÏ´Â ¹æ¹ýÀ¸·Î
±×³É Çϰí Àִµ¥.. º° ¹®Á¦°¡ ¾øÀ» °Í °°Àºµ¥¿ä..
¹°·Ð, Çϸé¾ß ÁÁ°ÚÁö¸¸.... »óȲÀÌ ¾ÈµÇ°í.. Âê¾÷.. 
ÁÁÀº °Å´Â ¸¹ÀÌ µè°í ¹è¿ì´Âµ¥.. ½ÇÁ¦·Î ÇÒ ¼ö ÀÖ´Â °ÍÀº
¸¹Áö ¾ÊÀº°¡ º¾´Ï´Ù.. ¿©·¯°¡Áö·Î ¾î·Á¿òÀÌ ¸¹±º¿ä.

±×·³...


- DeepDark 
·Î±×´Â À¯Àú·Î±×°¡ ¾Æ´Ï¶ó..
±×³É µð¹ö±ë Äڵ尡 ³ª¿­µÈ ºÎºÐÀÔ´Ï´Ù.
±×·¡¼­ µð¹ö±ë ¹öÀüÀ¸·Î µ¹¸±¶§¸¸ ³²°ÔµÇÁö¿ä -_-;
Ȥ½Ã³ª ¿ÀÇØ°¡ ÀÖÀ¸½ÅºÐÀÌ ÀÖÀ»±îºÁ..
À¯Àú·Î±×´Â µðºñ¿¡ ³²°Ü¼­ ¹é¾÷ÇÏÁÒ.
±×·³.
__
À̰游 
Çä,,ÀúÀÇ ¹«Áö¿´±º¿ä..(¾ÆÁ÷±îÁö µð¹ö±ë·Î±×°¡

±â°¡±îÁö °¥Á¤µµÀÇ °ÔÀÓÀº ¸ø¸¸µé¾îºÁ¼­¿ë ^^;)

±Ùµ¥, ´Ùµé ¸¸µå½Ã¸é¼­ µð¹ö±ë Á¤º¸¸¦ ¾î¶²½ÄÀ¸·Î ´ã´ÂÁö ±Ã±ÝÇØÁ³³×¿ä??

Àú´Â °¡Àå ±âº»ÀûÀÎ ¹æ¹ýÀÎ ÅØ½ºÆ®·Î´Ù°¡ ÁÙÁÙÁÙÁÙ ¾²°ïÇߴµ¥,
µ¿½Ã»ç¿ëÀÚ°¡ Á» ¸¹¾ÆÁö¸é,, º°·Î È¿À²ÀûÀÌÁö ¾Ê´õ±º¿ä...

´Ù¸¥ºÐµéÀº ¾îÂî ÇϽôÂÁö ±Ã±ÝÇÕ´Ï´Ù. 
Ưº°È÷ Çü½ÄÀº ¾øÁö¸¸ __FILE__Çϰí __LINE__·Î ÆÄÀϸí°ú ¶óÀμö¸¦
³Ö°í ÇÊ¿äÇÑ ÀÎÀÚ¸¦ ÇÁ¸°Æ® ÇÏ´Â Á¤µµ ÀÔ´Ï´Ù.
Ưº°ÇÑ Çü½ÄÀ» Áý¾î ³Ö°í ºÐ¼®ÇÏ´Â ÅøÀ» Â¥º¼·Á°íµµ »ý°¢ ÇßÁö¸¸
³Ê¹« °æ¿ìÀÇ ¼ö°¡ ¸¹¾ÆÁö´Â°Í °°¾Æ¼­¸®..
ÀÌ·¸°Ô ÇØµµ ±â°¡´ÜÀ§ÀÇ ÆÄÀÏÀÌ ³ª¿ÀÁö¸¸.. ¸¶Áö¸· õ¶óÀÎ Á¤µµ¸¸ ©¶ó¼­
ºÐ¼®ÇØ º¸°í ÀÖ½À´Ï´Ù.
ÆÄÀÏÀÇ ½ÎÀÌÁ ºÐ¼®Çؼ­ ©¶ó ³Ö´Â ÇÁ·Î±×·¥À» µ¹¸°´Ù¸é ±×¸¸Å­ ·Î±×¸¦ ³²±â´Â
½Ã°£ÀÌ ±æ¾îÁ®¼­ ÇÁ·Î±×·¥ÀÇ ½ÇÇà¿¡ ¿µÇâÀ» ÁÙ ¼öµµ ÀÖ°í ³»ºÎÀûÀ¸·Î ¹öÆÛ¸¦
±¸ÇöÇÑ´Ù¸é ÇÁ·Î±×·¥ÀÌ ¹«ÀÛÀ§·Î Á×¾úÀ»¶§ ¹öÆÛ¿¡ ³²À» ºÎºÐÀÌ »ç¶óÁ® ¹ö¸®´Ï±î
µð¹ö±ë¿ëÀ¸·Î ÀûÇÕÇÏÁö ¾Ê´õ±º¿ä.
__
À̰游 
¾È³çÇϼ¼¿ä? ·¹ÀÌ¿ÊÀÔ´Ï´Ù.

Èæ.. ÀúÈñ ¼­¹ö¿¡¼­´Â ³»ºÎ ¹öÆÛ¸µÇÏ´Â ·Î±× ¸Å´ÏÀú¸¦ µÎ°í ÀÖ½À´Ï´Ù.

¾Æ·¡ ±Ûó·³ °©Àڱ⠼­¹ö°¡ Á×À» °æ¿ì ¿øÀÎÀ» ¾Ë ¼ö ¾ø´Ù.. ¶ó´Â Å«

´ÜÁ¡À» °®°í ÀÖÁö¿ä. ±Ùµ¥, ¿ø·¡ÀÇ ¸ñÀûÀº µð¹ö±ë¿ëÀÌ ¾Æ´Ï¶ó ½ÇÁ¦

°ÔÀÓ ¼­ºñ½º¿¡¼­ »ç¿ëÇÒ °Å¿´±â ¶§¹®¿¡, ¾²·¹µåµéÀÌ ÆÄÀÏ Ãâ·ÂÇÒ·Á°í

°æÀïÇϰí, ¶Ç ÆÄÀÏ Ãâ·ÂÇÒ·Á°í ±â´Ù¸®´Â ½Ã°£À» ´ú±â À§Çؼ­(´ç¿¬È÷

±×µ¿¾È¿¡´Â Ç÷¹ÀÌ¾î ¼­ºñ½º¸¦ ÇÒ ¼ö ¾øÀ¸´Ï±ñ¿ä.. ÀúÈñ ±¸Á¶¿¡¼­´Â)

Àü¿ë ·Î±× ¾²·¹µå¸¦ µÎ°í, ³»ºÎ¿¡ Å« ¹öÆÛ¸¦ ¸¸µé¾î³õ°í, 5Ãʸ¶´Ù ÇÑ 
¹ø Á¤µµ ·Î±ëÀ» Çϰí ÀÖÁö¿ä.. ^_^;

°¢ °ÔÀÓ ¾²·¹µå¿¡¼­´Â ·Î±× ¸Å´ÏÀúÀÇ ¸Þ½îµå¸¦ È£ÃâÇØ¼­ ÇöÀçÀÇ ·Î±×

·¹º§¿¡ µû¶ó¼­ ÀûÀýÈ÷ ¹öÆÛ¿¡ Ãß°¡Çϸé, ·Î±× ¾²·¹µå´Â 5Ãʸ¶´Ù ȤÀº

¹öÆÛ°¡ ¸î % Âû ¶§¸¶´Ù ÆÄÀÏ¿¡ ¾²°ï ÇÏÁö¿ä. ¾îÂ÷ÇÇ ¾ê´Â °ÔÀÓ°ú´Â

¹«°üÇϱ⠶§¹®¿¡..

¾Ïư conditional variable À» »ç¿ëÇÏ´Ï±î ½±°Ô ±¸ÇöÀÌ µÇ´õ¶ó°í¿ë.

== 
¹°·Ð ½ÇÁ¦ µð¹ö±ëÀº cout & gdb ¸¦ ¾Ö¿ëÇϰí ÀÖÂî¿ä. ũũ.

Assert °¡ ³­¹«ÇÏ´Â ¸ÚÁø ÄÚµå - -;

¾Æ.. À¢Áö ½Ã´ë¿¡ µÚ¶³¾îÁö´Â ´À³¦ÀÌ......... T_T

¾È³çÇϼ¼¿ä? ·¹ÀÌ¿ÊÀÔ´Ï´Ù.

ÇöÀç ÀúÈñ´Â exception À» ¸¹ÀÌ »ç¿ëÇϰí Àִµ¥¿ä..

¿¹¿Ü 󸮸¦ ÇÔÀ¸·Î½á ¹ß»ýÇÏ´Â ÀåÁ¡Àº,

Äڵ尡 ¹«Ã´ ±ò²ûÇØÁø´Ù´Â °Ì´Ï´Ù.

¿¹Àü°°À¸¸é ¾î¶² ¸Þ½îµåÀÇ °á°ú°ªÀ» Ã¼Å©ÇØ¼­ ¿¡·¯³ª Ư¼ö »óȲÀÏ

°æ¿ì ±×¿¡ ÀûÇÕÇÑ Ã³¸® ¹æ¹ýÀ» ¹Ù·Î ¸í½ÃÇØÁá¾î¾ß Çϴµ¥..

¿¹¿Ü󸮸¦ »ç¿ëÇÏ¸é ´ëÃæ ¿¹¿Ü¸¦ ´øÁö°í, »óÀ§¿¡¼­ ÀûÀýÇϰÔ

ó¸®ÇÏ¸é µÇ´Ï±ñ ²Ï ÆíÇÏ´õ¶ó°í¿ä. 
Á¦°¡ ¾ÆÁÖ °ËÁõµÈ »ç½ÇÀ» °¡Áö°í ÀÖ´Â°Ç ¾Æ´ÏÁö¸¸,
¿¹Àü º¥Ä¡¸¶Å·À̳ª ¼­¹ö ÇÁ·Î±×·¡¹Ö °ü·Ã ÃÖÀûÈ­ ±â¹ýÀ» ´Ù·ç´Â
±Û¿¡¼­ ºÃ´ø °ÍÀÔ´Ï´Ù.

Á¦°¡ ¾Ë±â·Î´Â ½Ñ ÇÁ·Î¼¼½Ì¿¡ ÇØ´çÇÕ´Ï´Ù.
(¹°·Ð »ç¶÷¿¡ µû¶ó¼­´Â ¸Å¿ì ´Ù¸¥ ¾ç»óÀ» ³ªÅ¸³»°ÚÁö¸¸¿ä)

¹°·Ð, ÃÊ´ç ²Ï³ª ¸¹Àº Ƚ¼ö°¡ ½ÇÇàµÇ´Â ·çÇÁ¿¡ µé¾î°¡ÀÖ´Ù¸é

¹®Á¦°¡ µÉ ¼ö ÀÖ°ÚÁö¸¸, ¾Ïư ½Ô´Ï´Ù.
(º¸Åë ÀÌ·²¶§¿¡´Â ·çÇÁ¸¦ ¿¹¿Üó¸® ºí·ÏÀ¸·Î ¹­À¸¶ó°í ÇÏÁö¸¸,
½ÇÁ¦·Î´Â ±×·¸Áö ¸øÇÑ °æ¿ì°¡ ¸¹Áö¿ä~..maybe)

¹Ý¸é¿¡ ºñ½Ñ°Íµé·Î´Â ¸Þ¸ð¸® ÇÒ´ç°ú ÇØÁ¦°¡ ÀÖ½À´Ï´Ù. 
(´ëºÎºÐ ÀÎÁöÇϽôÂÁö ¸ð¸£°ÚÁö¸¸)

ƯÈ÷,¼­¹öÂÊ ÇÁ·Î±×·¥ÀÇ Æ¯¼º°ú ÀûÀýÇÑ ÀڷᱸÁ¶¿Í ¾ï¼¼½Ì ¹æ¹ýÀ»

ÃëÇÏ±â¸¸ÇØµµ ¸¹Àº ÆÛÆ÷¸Õ½º Çâ»óÀ» °¡Á®¿Ã¼ö ÀÖ´Ù µé¾ú½À´Ï´Ù.

(¹°·Ð,ÀÌ·±°ÍµéÀº ÄÄÆÄÀÏ·¯°¡ ¾ÆÁÖ Áß¿äÇÑ ¿ªÇÒÀ» ÇϰÚÁö¸¸¿ä)

±âº»ÀûÀÎ ¸Þ¸ð¸® Ç®¸µ ¾Ë°í¸®ÁòÀ» »ç¿ëÇØ¼­ ¸Þ¸ð¸® ÇÒ´ç°ú ÇØÁ¦¸¦

ó¸®ÇÑ´Ù¸é ÀûÀº ½Ã°£À» ¼Ò¿äÇÏ°íµµ ÇÁ·Î±×·¥ÀÇ ÆÛÆ÷¸Õ½º¸¦ Çâ»ó½Ãų¼ö

ÀÖ´Ù´Â ±º¿ä.