±Û³»¿ë - °­ÁÂ, ÆÁ, Á¤º¸
 TMultiReadExclusiveWriteSynchronizer ¸¦ ¾Æ½Ã³ª¿ä?
·ùÁ¾ÅÃ
(ryujt)
2008-09-22 ¿ÀÈÄ 5:55:39
Ä«Å×°í¸®:ÆÁ
3014ȸ Á¶È¸



µî·ÏµÈ ÆÄÀÏÀÌ ¾ø½À´Ï´Ù.
ÇÑ Âü ÀÚ°í Àִµ¥, °©Àڱ⠼¼¹Ì³ª ÇØ´Þ¶ó´Â ÀüÈ­ ¶§¹®¿¡ Àá¿¡¼­ ²£½À´Ï´Ù ¤Ñ.¤Ñ;;

Áß´ÜÇß´ø ÄÚµùÀ» ´Ù½Ã ÇÏ·Á´Ï ¼Õ¿¡ ¾ÈÀâÇô¼­ À̸® Àú¸® ³ë´Ï´Ù°¡,

¿¹Àü¿¡ ¾²·¹µå¿¡ ´ëÇÑ °­ÀÇÇßÀ» ¶§ ¼³¸íÇß´ø Ŭ·¡½º TMultiReadExclusiveWriteSynchronizer °¡ »ý°¢³ª¼­¿ä.

Á¦°¡ ½áº» ±âº» Ŭ·¡½º·Î´Â Á¦ÀÏ ±ä À̸§À» °¡Áö°í ÀÖ´Â À̳ÑÀº ¸ð¸£´Â ºÐµéµµ Á» ÀÖ´Â °Å °°¾Æ¼­¿ä.

¾²·¹µåÀÇ µ¿±âÈ­¿¡¼­´Â TCriticalSection À» ÀÚÁÖ ¾µÅÙµ¥¿ä.

TCriticalSection ´ë½Å »ç¿ëÇÒ ¼ö ÀÖ´Â °ÍÀÌ, TMultiReadExclusiveWriteSynchronizer ÀÔ´Ï´Ù.

ÀÏ´Ü ´Ù¸¥ Á¡Àº,

    procedure BeginRead;
    procedure EndRead;
    function BeginWrite: Boolean;
    procedure EndWrite;

¿Í °°ÀÌ Àбâ¿ë Lock°ú ¾²±â¿ë LockÀÌ µû·Î Á¸ÀçÇÑ´Ù´Â Á¡ÀÔ´Ï´Ù.

    procedure BeginRead;
    procedure EndRead;

ó·³ Àбâ¿ë LockÀº Àá°ÜÁ®ÀÖ´Â °æ¿ì¿¡µµ, ´Ù¸¥ ¾²·¹µå¿¡¼­ BeginRead·Î Àá±ÝÀ» Çϸé,

ºí·ÎÅ· µÇÁö ¾Ê°í ¹Ù·Î Äڵ尡 ½ÇÇàµÈ´Ù´Â Á¡ÀÔ´Ï´Ù.

ƯÁ¤ÇÑ ÀÚ¿øÀ» °øÀ¯ÇÒ ¶§, Àбâ´Â ¿©·¯ ¾²·¹µå¿¡¼­ µ¿½Ã¿¡ ÁøÇàÇصµ »ó°ü¾ø±â ¶§¹®¿¡ Çã¿ëÇÏ´Â °ÍÀÔ´Ï´Ù.

µû¶ó¼­, TCriticalSection º¸´Ù´Â ´Ù¼Ò È¿À²ÀûÀÎ °ü¸®°¡ °¡´ÉÇÒ ¼ö ÀÖ½À´Ï´Ù.

±×³É ÀÚ´Ù ÀϾ¼­ º° ¾µ¸ð ¾ø´Â ÆÁÀ̾ú½À´Ï´Ù ^^;