À©µµ¿ì ÇÁ·Î±×·¡¹Ö ÀÚ·á

HomePage Backward Forward Post Reply List
Delete Modify
  Á¦¸ñ   [MFC] Thread Etc... 1998/07/29 (17:52)
À̸§ swindler
¹øÈ£ 51
Á¶È¸ 431
º»¹® 1. Thread Blocking
WaitForSingleObject()ÇÔ¼ö È£ÃâÀº ½º·¹µå ºí·ÏÅ·ÀÇ ÇÑ
¿¹·Î ÀÛ¾÷ÀÚ ½º·¹µå°¡ À̺¥Æ®ÀÇ ½Ã±×³Î »óÅ°¡ µÉ ¶§±îÁö
´Ü¼øÈ÷ ½ÇÇàÀ» ÀϽà ÁßÁöÇϵµ·Ï ÇÒ ¼ö ÀÖ´Ù. ´Ù¸¥ ¹æ¹ýÀ¸·Îµµ
½º·¹µå ºí·ÏÅ·Àº ¹ß»ýÇÒ ¼ö ÀÖ´Ù.
Sleep()ÇÔ¼ö¸¦ È£ÃâÇÏ´Â µîÀÇ ¿¹°¡ ÀÖ´Ù. ºí·ÏÅ· È£ÃâÀº
¸ÞÀÎ ½º·¹µå¿¡ Æ÷ÇÔ½ÃÅ°Áö ¾Êµµ·Ï ÇØ¾ß ÇÑ´Ù. µð½ºÅ© I/O°¡
ÇÊ¿äÇÑ ÀÛ¾÷ÀÇ °æ¿ì ÀÛ¾÷ÀÚ ½º·¹µå¿¡ ³Ö°í ¸ÞÀÎ ½º·¹µå¿Í
µ¿±âÈ­¸¦ Çϴ°ÍÀÌ ÁÁ´Ù.
½º·¹µå¸¦ ºÒ¸íÈ®ÇÏ°Ô ºí·ÏÅ·ÇÏ´Â °Í¿¡ ÁÖÀÇÇØ¾ß ÇÑ´Ù.
¹«ÇÑÁ¤ ºí·ÏÅ·µÇ´Â °æ¿ì ¸ÞÀÎ ÇÁ·Î¼¼½º°¡ Á¾·áµÇ¸é ½º·¹µåµµ
Á¾·á´Â µÇÁö¸¸, ¸Þ¸ð¸® ´©ÃâÀÌ ¹ß»ýÇÒ ¼ö ÀÖ´Ù. ¸ÞÀÎ ½º·¹µå¿¡¼­
TerminateThread()¸¦ È£ÃâÇÏ¿© ½º·¹µå¸¦ °­Á¦ Á¾·áÇÒ ¼ö
ÀÖÁö¸¸, ¸Þ¸ð¸® ´©ÃâÀº ¿©ÀüÈ÷ ÀϾ´Ù.

2. Critical Section
ÀÓ°è ¼½¼Ç(°øÀ¯ÇÑ µ¥ÀÌŸÀÇ ¹èÂ÷Àû ¾×¼¼½º¸¦ ¿ä±¸ÇÏ´Â ÄÚµåÀÇ
¼½¼Çµé) ÇÚµéÀ» wrapÇÏ´Â CCriticalSection Class°¡ ÀÖ´Ù.
Lock(), UnLock()ÇÔ¼ö¸¦ ÀÌ¿ëÇÑ´Ù.
EnterCriticalSection(), LeaveCriticalSection(),
DeleteCriticalSection()À» È£ÃâÇÏ°Ô µÈ´Ù.

CCriticalSection g_cs; // ´Ù¸¥ ½º·¹µåÀÇ Á¢±ÙÀ» À§ÇØ Àü¿ª°´Ã¼
int count;

void func()
{
g_cs.Lock();
count++;
g_cs.UnLock();

Lock()¿¡ ÀÇÇØ ´Ù¸¥ ½º·¹µå°¡ ºí·ÏÅ·µÇ¸ç, ÁßøµÈ ÀÓ°è ¼½¼ÇÀÇ
°æ¿ì¿¡µµ À©µµ¿ì°¡ Áßø ¼øÀ§¿¡ µû¶ó ÃßÀûÇϹǷΠ¹®Á¦°¡ ¾ø´Ù.
Àü¿ª °´Ã¼ÀÇ °æ¿ì¿¡´Â Á¤»óÀûÀ¸·Î ÀÛµ¿ÇÏÁö¸¸, °´Ã¼ Æ÷ÀÎÅ͸¦
°øÀ¯ÇÑ´Ù¸é ÀÏ·ÃÀÇ ¶Ç ´Ù¸¥ ¹®Á¦°¡ »ý±æ ¼ö ÀÖ´Ù.½º·¹µå´Â ´Ù¸¥
½º·¹µå°¡ °´Ã¼¸¦ »èÁ¦Çß´ÂÁöÀÇ ¿©ºÎ¸¦ ÆÇ´ÜÇØ¾ß ÇϹǷΠ°´Ã¼
Æ÷ÀÎÅÍÀÇ ¾×¼¼½º¸¦ µ¿±âÈ­½ÃÄÑ¾ß ÇÏ´Â °ÍÀÌ´Ù.

3. Mutex, Semaphore
ÀÓ°è ¼½¼ÇÀº ´ÜÀÏ ÇÁ·Î¼¼½º ³»¿¡¼­¸¸ °¡´ÉÇϹǷΠ¹ÂÅؽº³ª
¼¼¸¶Æ÷¾î¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.

<À̺¥Æ®> ½º·¹µå°£ÀÇ µ¿±âÈ­¿¡ ³Î¸® »ç¿ëµÇ´Â ¹æ¹ýÀ¸·Î
ÇϳªÀÇ ½º·¹µå°¡ ´Ù¸¥ ½º·¹µå¿¡°Ô ƯÁ¤ À̺¥Æ®°¡ ¹ß»ýÇßÀ½À»
¾Ë¸°´Ù. ´Ù¸¥ ÇÁ·Î¼¼½º³»ÀÇ ½º·¹µå°£¿¡µµ °¡´ÉÇÏ´Ù.

<ÀÓ°è¼½¼Ç> °øÀ¯ µ¥ÀÌÅͳª ¸®¼Ò½º(¸Þ¸ð¸®, ÆÄÀÏ)¿¡ ´ëÇÑ
Á¢±ÙÀ» ÇϳªÀÇ ½º·¹µå·Î Á¦ÇÑÇÑ´Ù. µ¿ÀÏ ÇÁ·Î¼¼½º ³»¿¡¼­¸¸
°¡´ÉÇÏ´Ù.

<¹ÂÅؽº> Å©¸®Æ¼Äà ¼½¼Ç°ú µ¿ÀÏ ±â´ÉÀ» ÇÏÁö¸¸ ´Ù¸¥ ÇÁ·Î¼¼½º¿¡
¼ÓÇÑ ½º·¹µå¸¦ Á¦¾îÇÒ ¼ö ÀÖ´Ù.

<¼¼¸¶Æ÷¾î> ¹ÂÅؽº¿Í À¯»çÇÏÁö¸¸ µ¿½Ã¿¡ ¼öÇàµÉ ¼ö ÀÖ´Â
½º·¹µå¸¦ ¿©·¯°³·Î Á¦ÇÑÇÑ´Ù. Á¦ÇÑµÈ ¼öÀÇ ½º·¹µå°¡
°øÀ¯ µ¥ÀÌÅͳª ¸®¼Ò½º¿¡ Á¢±ÙÇÑ´Ù.


4. »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º ½º·¹µå
»ç¿ëÀÚ¿¡ ÀÇÇØ ¾îÇø®ÄÉÀ̼ÇÀÇ ¸ÖƼ ÀνºÅϽº¸¦ ½ÇÇàÇϵµ·Ï
Çã¿ëÇϸ鼭 »ý¼ºµÈ ÀνºÅϽºµéÀÌ ¸Þ¸ð¸®¸¦ °øÀ¯Çϵµ·Ï
ÇÏ·Á´Â °æ¿ì ´ÜÀÏ ÇÁ·Î¼¼½º¸¦ ±¸¼ºÇÏ¿© ¿©·¯°³ÀÇ »ç¿ëÀÚ
ÀÎÅÍÆäÀ̽º ½º·¹µå¸¦ ½ÇÇà½ÃÅ´À¸·Î½á »ç¿ëÀÚ·Î ÇÏ¿©±Ý
¸¶Ä¡ °¢ ½º·¹µå°¡ º°°³ÀÇ ÇÁ·Î¼¼½º¸¦ ½ÇÇà½ÃÅ°´Â °Íó·³
»ý°¢Çϵµ·Ï ÇÒ ¼ö ÀÖ´Ù.
(À©µµ¿ìÀÇ Å½»ö±â°¡ ÀÌ·± ÇöÅÂÀÎ °Í °°´Ù.Ž»ö±â¸¦ 3°³
½ÇÇàÇϸé, ÇÁ·Î¼¼½ºÀÇ ¼ö´Â ¿©ÀüÈ÷ 1°³À̸ç, ½º·¹µå °³¼ö¸¸
Áõ°¡µÈ´Ù.)

µÎ¹ø° ÀÌÈÄÀÇ ½º·¹µå¸¦ Ãâ¹ß½Ãų ¶§¿¡´Â ù¹ø° ÇÁ·Î¼¼½º¸¦
½Ã±×³Î »óÅ·Π¸¸µé¾î »õ·Î¿î ½º·¹µå°¡ Ãâ¹ßµÇµµ·Ï ÇÑ ´ÙÀ½
Á¾·áÇÑ´Ù.µÎ¹ø° ÇÁ·Î¼¼½º´Â FindWindow()¸¦ È£ÃâÇϰųª
°øÀ¯ µ¥ÀÌŸ ¼½¼ÇÀ» ¼±¾ðÇÏ´Â ¹æ¹ýÀ¸·Î ù¹ø° ÇÁ·Î¼¼½º¸¦
ãÀ» ¼ö ÀÖ´Ù.

HomePage Backward Forward Post Reply List
1998 by swindler