मुझे एक ही प्रक्रिया में मुख्य धागे और अन्य थ्रेड के बारे में समस्या है। जब मुख्य समारोह वापस आता है, तो अन्य धागा भी बाहर निकलता है? मुझे कुछ भ्रमित है। और मैं कुछ टेस्ट कोड लिखता हूं, जैसे:मुख्य धागा निकास, क्या अन्य निकास भी करता है?
void* test1(void *arg)
{
unsigned int i = 0;
while (1){
i+=1;
}
return NULL;
}
void* test2(void *arg)
{
long double i = 1.0;
while (1){
i *= 1.1;
}
return NULL;
}
void startThread (void * (*run)(void*), void *arg) {
pthread_t t;
pthread_attr_t attr;
if (pthread_attr_init(&attr) != 0
|| pthread_create(&t, &attr, run, arg) != 0
|| pthread_attr_destroy(&attr) != 0
|| pthread_detach(t) != 0) {
printf("Unable to launch a thread\n");
exit(1);
}
}
int main()
{
startThread(test1, NULL);
startThread(test2, NULL);
sleep(4);
printf("main thread return.\n");
return 0;
}
जब "मुख्य धागा वापसी"। बाहर निकालें, थ्रेड test1 और test2 भी बाहर निकलें, कोई मुझे बता सकता है क्यों?
प्रश्न का पाठ प्रश्न निकाय से मेल नहीं खाता है। क्या यह मुख्य होता है जब मुख्य धागा निकलता है? या यह तब होता है जब मुख्य धागा 'मुख्य' फ़ंक्शन से वापस आता है? (जाहिर है, अगर यह निकलता है तो थ्रेड वापस नहीं आ सकता है। यह एक या दूसरे को कर सकता है।) –