±â¼ú ÀÚ·á: 94804 - ¸¶Áö¸· °ËÅä: 2003³â 5¿ù 5ÀÏ ¿ù¿äÀÏ - ¼öÁ¤: 2.0 INFO: ½º·¹µå ·ÎÄà ÀúÀå¼Ò °³¿ä
ÀÌ ¹®¼´Â ÀÌÀü¿¡ ´ÙÀ½ ID·Î ÃâÆÇµÇ¾úÀ½: KR94804 ÀÌ ÆäÀÌÁö¿¡¼¿ä¾à
TLS(½º·¹µå ·ÎÄà ÀúÀå¼Ò)´Â ÁÖ¾îÁø ÇÁ·Î¼¼½º¿¡ ÀÖ´Â °¢ ½º·¹µå¿¡¼ ½º·¹µå Àü¿ë µ¥ÀÌÅ͸¦ ÀúÀåÇÒ ¼ö ÀÖµµ·Ï À§Ä¡¸¦ ÁÖ´Â ¹æ¹ýÀÔ´Ï´Ù. TLS¸¦ À§ÇÑ ÇÔ¼ö¿¡´Â TlsAlloc(), TlsGetValue(), TlsSetValue() ¹× TlsFree()µîÀÌ ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ÇÔ¼ö´Â ÇÁ·Î¼¼½º¿¡ ÀÖ´Â °¢ ½º·¹µå¿¡ ´ëÇÑ ÀúÀå ¿µ¿ªÀ» ÂüÁ¶ÇÏ´Â TLS À妽º¸¦ °ü¸®ÇÕ´Ï´Ù. ÁÖ¾îÁø À妽º´Â ÀÚ½ÅÀ» ÇÒ´çÇÑ ÇÁ·Î¼¼½º ³»¿¡¼¸¸ À¯È¿ÇÕ´Ï´Ù. Visual C++ ÄÄÆÄÀÏ·¯´Â ¾Æ·¡¿Í °°Àº ´ëü ±¸¹®À» Áö¿øÇÕ´Ï´Ù. _declspec( thread ) ÀÌ ±¸¹®Àº ÀÌ·¯ÇÑ API¸¦ Á÷Á¢ È£ÃâÇÏ´Â ´ë½Å »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº VC++ "¾ð¾î ¹× ·±Å¸ÀÓ µµ¿ò¸»" µµ¿ò¸» ÆÄÀÏ¿¡ ÀÖ´Â _declspecÀÇ ¼³¸íÀ» ÂüÁ¶ÇϽʽÿÀ.
Ãß°¡ Á¤º¸
TlsAlloc()¿¡ ´ëÇÑ È£ÃâÀº Àü¿ª TLS À妽º¸¦ ¹ÝȯÇÕ´Ï´Ù. ÀÌ ÇϳªÀÇ TLS À妽º´Â ÀÚ½ÅÀ» ÇÒ´çÇÑ ÇÁ·Î¼¼½º ³»ÀÇ ¸ðµç ½º·¹µå¿¡ ´ëÇØ À¯È¿ÇÕ´Ï´Ù. µû¶ó¼ Àü¿ª ¶Ç´Â Á¤Àû º¯¼ö·Î ÀúÀåÇØ¾ß ÇÕ´Ï´Ù. ½º·¹µå ·ÎÄà ÀúÀå¼Ò´Â ´ÙÀ½°ú °°ÀÌ µ¿ÀÛÇÕ´Ï´Ù. TlsAlloc()ÀÌ È£ÃâµÇ¸é ÇÁ·Î¼¼½º ³»ÀÇ ¸ðµç ½º·¹µå´Â Àڽſ¡°Ô ¿¹¾àµÈ °íÀ¯ÇÑ ULONG_PTR Å©±âÀÇ °ø°£À» °®½À´Ï´Ù. ÀÌ °ø°£Àº ½ºÅà °ø°£ ³»¿¡ ÀÖÁö¸¸ ±¸Çö ¹æ½Ä¿¡ µû¶ó ´Þ¶óÁý´Ï´Ù. ±×·¯³ª ÇϳªÀÇ TLS À妽º¸¸ ¹ÝȯµË´Ï´Ù. ÇÁ·Î¼¼½º¿¡ ÀÖ´Â °¢ ½º·¹µå´Â ÀÌ·¯ÇÑ ´ÜÀÏÀÇ TLS À妽º¸¦ »ç¿ëÇÏ¿© TlsAlloc()ÀÌ ¿¹¾àÇÑ °íÀ¯ °ø°£À» ÂüÁ¶ÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ÀÌÀ¯·Î ÀÎÇØ, TlsAlloc()Àº ´ë°³ ÇÑ ¹ø¸¸ È£ÃâµË´Ï´Ù. ÀÌ ÇÔ¼ö´Â DLL_PROCESS_ATTACH( ÇÁ·Î¼¼½ºÀÇ Ã¹¹øÂ° ½º·¹µå°¡ DLL¿¡ ¿¬°áµÇ¾î ÀÖÀ½)¿Í DLL_THREAD_ATTACH(ÇÁ·Î¼¼½ºÀÇ ´ÙÀ½ ½º·¹µå°¡ ¿¬°áµÇ¾î ÀÖÀ½)¸¦ ±¸º°ÇÒ ¼ö Àֱ⠶§¹®¿¡ DLL¿¡¼ À¯¿ëÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ù¹øÂ° ½º·¹µå°¡ TlsAlloc()¸¦ È£ÃâÇϰí Àü¿ª º¯¼ö ¶Ç´Â Á¤Àû º¯¼ö·Î TLS À妽º¸¦ ÀúÀåÇϰí DLL¿¡ ¿¬°áµÇ¾î ÀÖ´Â ´Ù¸¥ ¸ðµç ½º·¹µå´Â ÇØ´ç ·ÎÄà ÀúÀå °ø°£¿¡ ¿¢¼¼½ºÇϱâ À§Çؼ Àü¿ª º¯¼ö¸¦ ÂüÁ¶ÇÕ´Ï´Ù. ÀϹÝÀûÀ¸·Î ÇϳªÀÇ TLS À妽º¸¸À¸·Î ÃæºÐÇÏÁö¸¸ ÇÁ·Î¼¼½º´Â TLS_MINIMUM_AVAILABLE À妽º±îÁö TLS À妽º¸¦ °¡Áú ¼ö ÀÖ½À´Ï´Ù(64°³ ÀÌ»ó±îÁö °¡Áú ¼ö ÀÖ½À´Ï´Ù.) ÀÏ´Ü TLS À妽º°¡ ÇÒ´çµÇ¾î ÀúÀåµÇ¸é ÇÁ·Î¼¼½º ³»ÀÇ ½º·¹µå´Â ÀÌ À妽º¸¦ »ç¿ëÇÏ¿© ÀÚ½ÅÀÇ ÀúÀå °ø°£¿¡ ÀÖ´Â °ªÀ» ¼³Á¤Çϰųª ¾òÀ» ¼ö ÀÖ½À´Ï´Ù. ½º·¹µå´Â ÀÚ½ÅÀÇ ·ÎÄà ÀúÀå¼Ò¿¡ ULONG_PTR Å©±âÀÇ °ªÀ» ÀúÀåÇÒ ¼ö ÀÖ½À´Ï´Ù(¿¹: ULONG_PTR °ª, µ¿ÀûÀ¸·Î ÇÒ´çµÈ ¸Þ¸ð¸®¿¡ ´ëÇÑ Æ÷ÀÎÅÍ µî). ÀÌ·¯ÇÑ ¸ñÀûÀ¸·Î TlsSetValue() ¹× TlsGetValue() API°¡ »ç¿ëµË´Ï´Ù. ÇÁ·Î¼¼½º´Â TLS À妽ºÀÇ »ç¿ëÀÌ ³¡³ª¸é TlsFree()¸¦ »ç¿ëÇÏ¿© ÀÌ À妽º¸¦ ÇØÁ¦ÇÕ´Ï´Ù. ±×·¯³ª ÇÁ·Î¼¼½º¿¡ ÀÖ´Â ½º·¹µå°¡ ÀÚ½ÅÀÇ ·ÎÄà ÀúÀå °ø°£ ³»¿¡ µ¿ÀûÀ¸·Î ÇÒ´çµÈ ¸Þ¸ð¸®¿¡ ´ëÇÑ Æ÷ÀÎÅ͸¦ ÀúÀåÇßÀ¸¸é TLS À妽º¸¦ ÇØÁ¦Çϱâ Àü¿¡ ¸Þ¸ð¸®¿¡ ´ëÇÑ Æ÷ÀÎÅ͸¦ ¾ò¾î¼ ¸Þ¸ð¸®¸¦ ÇØÁ¦ÇØ¾ß ÇÕ´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é ¸Þ¸ð¸®°¡ ¼Õ½ÇµË´Ï´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº "Win32 Programmer's Reference"ÀÇ "Processes and Threads"¿¡ ÀÖ´Â "Using Thread Local Storage"À» ÂüÁ¶ÇϽʽÿÀ. ¿¹Á¦ÇÁ·Î¼¼½º ³»ÀÇ ½º·¹µå A°¡ TlsAlloc()À» È£ÃâÇϰí Àü¿ª º¯¼ö TlsIndex¿¡ ¹ÝȯµÈ À妽º¸¦ ÀúÀåÇÕ´Ï´Ù.½º·¹µå B´Â Ưº°È÷ ·ÎÄà ÀúÀå¼Ò¿¡¼ °ªÀ» ÇØÁ¦ÇÏÁö ¾Ê¾Æµµ µÇ¹Ç·Î ¾ÈÀüÇÏ°Ô Á¾·áÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª ½º·¹µå A°¡ Á¾·áµÇ±â Àü¿¡ ·ÎÄà ÀúÀå¼Ò¿¡ µ¿ÀûÀ¸·Î ÇÒ´çµÈ ¸Þ¸ð¸®¸¦ ¸ÕÀú ÇØÁ¦ÇØ¾ß ÇÕ´Ï´Ù. º» ¹®¼ÀÇ Á¤º¸´Â ´ÙÀ½ÀÇ Á¦Ç°¿¡ Àû¿ëµË´Ï´Ù.
| Ãß°¡ ¸®¼Ò½º Ãß°¡ Áö¿ø »çÀÌÆ®
Ä¿¹Â´ÏƼ±â¼ú ÀÚ·á ¹ø¿ª |






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email
À§·Î °¡±â