ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
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ÀÌ ¾Æ´Ñ °ªÀ» ¸®ÅÏÇÑ´Ù. ¿¡·¯
¿¹Á¦#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; } |
|
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|