ÇÑ Âü ÀÚ°í Àִµ¥, °©Àڱ⠼¼¹Ì³ª ÇØ´Þ¶ó´Â ÀüÈ ¶§¹®¿¡ Àá¿¡¼ ²£½À´Ï´Ù ¤Ñ.¤Ñ;;
Áß´ÜÇß´ø ÄÚµùÀ» ´Ù½Ã ÇÏ·Á´Ï ¼Õ¿¡ ¾ÈÀâÇô¼ À̸® Àú¸® ³ë´Ï´Ù°¡,
¿¹Àü¿¡ ¾²·¹µå¿¡ ´ëÇÑ °ÀÇÇßÀ» ¶§ ¼³¸íÇß´ø Ŭ·¡½º TMultiReadExclusiveWriteSynchronizer °¡ »ý°¢³ª¼¿ä.
Á¦°¡ ½áº» ±âº» Ŭ·¡½º·Î´Â Á¦ÀÏ ±ä À̸§À» °¡Áö°í ÀÖ´Â À̳ÑÀº ¸ð¸£´Â ºÐµéµµ Á» ÀÖ´Â °Å °°¾Æ¼¿ä.
¾²·¹µåÀÇ µ¿±âÈ¿¡¼´Â TCriticalSection À» ÀÚÁÖ ¾µÅÙµ¥¿ä.
TCriticalSection ´ë½Å »ç¿ëÇÒ ¼ö ÀÖ´Â °ÍÀÌ, TMultiReadExclusiveWriteSynchronizer ÀÔ´Ï´Ù.
ÀÏ´Ü ´Ù¸¥ Á¡Àº,
procedure BeginRead;
procedure EndRead;
function BeginWrite: Boolean;
procedure EndWrite;
¿Í °°ÀÌ Àбâ¿ë Lock°ú ¾²±â¿ë LockÀÌ µû·Î Á¸ÀçÇÑ´Ù´Â Á¡ÀÔ´Ï´Ù.
procedure BeginRead;
procedure EndRead;
ó·³ Àбâ¿ë LockÀº Àá°ÜÁ®ÀÖ´Â °æ¿ì¿¡µµ, ´Ù¸¥ ¾²·¹µå¿¡¼ BeginRead·Î Àá±ÝÀ» Çϸé,
ºí·ÎÅ· µÇÁö ¾Ê°í ¹Ù·Î Äڵ尡 ½ÇÇàµÈ´Ù´Â Á¡ÀÔ´Ï´Ù.
ƯÁ¤ÇÑ ÀÚ¿øÀ» °øÀ¯ÇÒ ¶§, Àбâ´Â ¿©·¯ ¾²·¹µå¿¡¼ µ¿½Ã¿¡ ÁøÇàÇصµ »ó°ü¾ø±â ¶§¹®¿¡ Çã¿ëÇÏ´Â °ÍÀÔ´Ï´Ù.
µû¶ó¼, TCriticalSection º¸´Ù´Â ´Ù¼Ò È¿À²ÀûÀÎ °ü¸®°¡ °¡´ÉÇÒ ¼ö ÀÖ½À´Ï´Ù.
±×³É ÀÚ´Ù ÀϾ¼ º° ¾µ¸ð ¾ø´Â ÆÁÀ̾ú½À´Ï´Ù ^^;
|