linux man page : pthread_detach - ½ÇÇàÁßÀÎ ¾²·¹µå¸¦ ºÐ¸® ÇÑ´Ù.
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®



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

pthread_detach

½ÇÇàÁßÀÎ ¾²·¹µå¸¦ detached(ºÐ¸®)»óÅ·Π¸¸µç´Ù.

»ç¿ë¹ý

#include <pthread.h> 
 
int pthread_detach(pthread_t th); 
 

¼³¸í

pthread_detachÇÔ¼ö´Â ¾²·¹µå ½Äº°ÀÚth¸¦ °¡Áö´Â ¾²·¹µå¸¦ ¸ÞÀξ²·¹µå¿¡¼­ ºÐ¸® ½ÃŲ´Ù. À̰ÍÀº th¸¦ °¡Áö´Â ¾²·¹µå°¡ Á¾·áµÇ´Â Áï½Ã ¾²·¹µåÀÇ ¸ðµç ÀÚ¿øÀ» µÇµ¹·Á(free)ÁÙ °ÍÀ» º¸ÁõÇÑ´Ù. detach»óŰ¡ ¾Æ´Ò°æ¿ì ¾²·¹µå°¡ Á¾·áÇÑ´Ù°í ÇÏ´õ¶óµµ pthread_join(3)À» È£ÃâÇÏÁö ¾Ê´Â ÇÑ ÀÚ¿øÀ» µÇµ¹·ÁÁÖÁö ¾Ê´Â´Ù.

pthread_detach()ÇÔ¼ö¸¦ È£ÃâÇÏ´Â ¿Ü¿¡µµ pthread_create()½Ã pthread_attr_t¿¡ detachstate¸¦ ÁöÁ¤ÇØ ÁÜÀ¸·Î½á detach»óÅ·Π»ý¼ºÇÒ ¼ö µµ ÀÖ´Ù. pthread_attr_t´Â pthread_attr_init(3)ÇÔ¼ö¸¦ ÀÌ¿ëÇØ¼­ º¯°æÇÒ ¼ö ÀÖ´Ù.

¾²·¹µå°¡ detach»óÅ·ΠµÇ¾ú´Ù¸é ÇØ´ç ¾²·¹µå¿¡ ´ëÇÑ pthread_join()È£ÃâÀº ½ÇÆÐÇÑ´Ù.

¹Ýȯ°ª

¼º°øÇϸé 0À», ½ÇÆÐÇϸé 0ÀÌ ¾Æ´Ñ °ªÀ» ¸®ÅÏÇÑ´Ù.

¿¡·¯

  • ESRCH
    th½Äº°ÀÚ¸¦ °¡Áø ¾²·¹µå°¡ Á¸ÀçÇÏÁö ¾Ê´Â´Ù.
  • EINVAL
    th½Äº°ÀÚ¸¦ °¡Áø ¾²·¹µå°¡ ÀÌ¹Ì detach»óÅ¿¡ ÀÖ´Ù.

¿¹Á¦

#include <pthread.h> 
#include <stdio.h> 
#include <unistd.h> 
#include <stdlib.h> 
 
// ¾²·¹µå ÇÔ¼ö 
// 1Ãʸ¦ ±â´Ù¸°ÈÄ ¾Æ±Ô¸ÕÆ®^2 À» ¸®ÅÏÇÑ´Ù. 
void *t_function(void *data) 
{ 
    char a[100000]; 
    int num = *((int *)data); 
    printf("Thread Start\n"); 
    sleep(5); 
    printf("Thread end\n"); 
} 
 
int main() 
{ 
    pthread_t p_thread; 
    int thr_id; 
    int status; 
    int a = 100; 
 
    printf("Before Thread\n");  
    thr_id = pthread_create(&p_thread, NULL, t_function, (void *)&a); 
    if (thr_id < 0) 
    { 
        perror("thread create error : "); 
        exit(0); 
    } 
    // ½Äº°¹øÈ£ p_thread ¸¦ °¡Áö´Â ¾²·¹µå¸¦ detach  
    // ½ÃÄÑÁØ´Ù.  
    pthread_detach(p_thread); 
    pause(); 
    return 0; 
} 
 

Âü°í¹®Çå

  1. ½º·¹µå ÇÁ·Î±×·¡¹Ö
  2. Pthread API Reference
  3. pthread_create(3)
  4. pthread_attr_init(3)
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.