winapi : CreateThread - ¾²·¹µå »ý¼º
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®
ÇöÀçÀ§Ä¡ : ¸Þ´º¾ó>winapi>CreateThread



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.

CreateThread

È£ÃâÇÑ ÇÁ·Î¼¼½ºÀÇ °¡»ó ÁÖ¼Ò °ø°£¿¡ ¾²·¹µå¸¦ »ý¼ºÇؼ­ ½ÇÇàÇÑ´Ù. CreateRemoteThreadÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¸é ´Ù¸¥ ÇÁ·Î¼¼½ºÀÇ °¡»ó ÁÖ¼Ò °ø°£¿¡¼­ ¾²·¹µå¸¦ ½ÇÇàÇÒ ¼ö ÀÖ´Ù. (´Ù¸¥ ÇÁ·Î¼¼½ºÀÇ ÁÖ¼Ò °ø°£¿¡ ¾²·¹µå¸¦ ½ÇÇà½ÃŲ ´Ù´Â °ÍÀÇ Àǹ̸¦ È®ÀÎÇØ ºÁ¾ß °Ú´Ù.)

»ç¿ë ¹æ¹ý

HANDLE WINAPI CreateThread( 
  __in_opt   LPSECURITY_ATTRIBUTES lpThreadAttributes, 
  __in       SIZE_T dwStackSize, 
  __in       LPTHREAD_START_ROUTINE lpStartAddress, 
  __in_opt   LPVOID lpParameter, 
  __in       DWORD dwCreationFlags, 
  __out_opt  LPDWORD lpThreadId 
); 
 

¸Å°³º¯¼ö

lpThreadAttributes [in, optional]
SECURITY_ATTRIBUTES ±¸Á¶Ã¼ Æ÷ÀÎÅÍ. NULL À» »ç¿ëÇÏ¸é ±âº» º¸¾ÈƯ¼ºÀ» »ç¿ëÇÑ´Ù.

typedef struct _SECURITY_ATTRIBUTES  
{ 
    DWORD nLength;    // ÀÌ ±¸Á¶Ã¼ÀÇ Å©±â 
    LPVOID lpSecurityDescriptor;    // °øÀ¯ Á¦¾î¿¡ ´ëÇÑ º¸¾È descriptor Æ÷ÀÎÅÍ. 
    BOOL bInheritHandle;   // Child Process ·Î Kernel Object Handle¸¦ ³Ñ°ÜÁÙ °ÍÀÎÁö. 
} 
 

dwStackSize in
½ºÄ´ÀÇ Å©±â¸¦ ÃʱâÈ­ ÇÑ´Ù. ´ÜÀ§´Â byte´Ù. ¸¸¾à 0ÀÌ¸é ±âº» Å©±â°¡ »ç¿ëµÈ´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº Thread Stack Size ¹®¼­¸¦ Âü°íÇÑ´Ù.

lpStartAddress in
½ÇÇàÇÒ ¾²·¹µå ÇÔ¼öÀÇ Æ÷ÀÎÅÍÀÌ´Ù.

lpParameter [in, optional]
¾²·¹µå¿¡ ³Ñ°ÜÁÙ º¯¼öÀÇ Æ÷ÀÎÅÍ.

dwCreationFlags in
¾²·¹µå°¡ »ý¼ºµÉ ¶§ »ç¿ëÇÒ Ãß°¡ÀûÀÎ ÇÁ·¤±× °ªÀÌ´Ù. ÀÌ °ªÀÌ 0ÀÌ¸é ¾²·¹µå´Â »ý¼º Áï½Ã CPU¿¡ ÀÇÇØ ½ºÄÉÁÙ¸µ µÈ´Ù. CREATE_SUSPENDED Ç÷¡±×¸¦ ¼³Á¤Çϸé ResumeThreadÇÔ¼ö È£ÃâÀü±îÁö ´ë±âÇÑ´Ù.

lpThreadId [out, optional]
¾²·¹µå ½Äº°¹øÈ£´Ù. ¸Å°³º¯¼ö °ªÀÌ NULLÀ̸é, ¾²·¹µå ½Äº°¹øÈ£¸¦ ¹ÝȯÇÏÁö ¾Ê´Â´Ù.

¹Ýȯ °ª

ÇÔ¼ö°¡ ¼º°øÀûÀ¸·Î ½ÇÇàµÇ¸é, »ý¼ºµÈ ¾²·¹µåÀÇ handleÀÌ ¹Ýȯ µÈ´Ù. ÇÔ¼ö°¡ ½ÇÆÐÇϸé NULLÀ» ¹ÝȯÇÑ´Ù. GetLastError() ÇÔ¼ö¸¦ È£ÃâÇϸé ÀÚ¼¼ÇÑ ¿¡·¯³»¿ëÀ» È®ÀÎ ÇÒ ¼ö ÀÖ´Ù.

Âü°í ³»¿ë

ÇÁ·Î¼¼½º°¡ »ý¼ºÇÒ ¼ö ÀÖ´Â ¾²·¹µåÀÇ °¹¼ö´Â °¡»ó ¸Þ¸ð¸®ÀÇ Å©±â¿¡µû¶ó Á¦ÇѵȴÙ. ±âº»ÀûÀ¸·Î ¾²·¹µå´Â 1¸Þ°¡ ¹ÙÀÌÆ®ÀÇ ½ºÅÃÅ©±â¸¦ °¡Áø´Ù. ±×·¯¹Ç·Î ÃÖ´ë 2048°³ÀÇ ¾²·¹µå¸¦ »ý¼ºÇÒ ¼ö ÀÖ´Ù. ´õ ¸¹Àº ¾²·¹µå¸¦ »ý¼ºÇÏ·Á¸é ½ºÅÃÅ©±â¸¦ ÁÙ¿©¾ß ÇÑ´Ù.

¾²·¹µåµéÀº µ¿½Ã¿¡ ¼öÇàµÉ ¼ö ÀÖÀ¸¸ç, ¾î¶°ÇÑ ¼ø¼­·Î ½ÇÇàµÉ °ÍÀÎÁö¸¦ ¿¹ÃøÇÒ ¼ö ¾ø´Ù.

°úÁ¦

  • 1000 ¸¸°³ÀÇ ¼Ò¼ö¸¦ ã¾Æ³»´Â ¸ÖƼ¾²·¹µå ÇÁ·Î±×·¥À» ¸¸µé¾î º¸ÀÚ.
  • ¾²·¹µå¸¦ ´Ã·Á°¡¸é¼­ ¼º´É Çâ»óÀÌ ÀÖ´ÂÁö È®ÀÎÇØ º¸ÀÚ.
  • pthread ·Îµµ Å×½ºÆ® ÇØº¸ÀÚ.
  • _beginthread, _beginthreadex ¿ÍÀÇ Â÷ÀÌÁ¡¿¡ ´ëÇØ¼­ ¾Ë¾Æº¸ÀÚ.

°ü·Ã ±Û

EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.