我在同一个进程中有一个关于主线程和其他线程的问题.当主函数返回时,其他线程也退出?我有点困惑我我写了一些测试代码,像这样:
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也退出,有人可以告诉我为什么吗?
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。