-1
当您使用thread_create创建线程并传递函数时,如果函数中存在无限循环,函数是否会永久运行? 如
c,正确使用线程
for(;;){
//dosomthing
}
是否线程保持“做财产以后”直到线程被破坏,或程序完成?
感谢名单
当您使用thread_create创建线程并传递函数时,如果函数中存在无限循环,函数是否会永久运行? 如
c,正确使用线程
for(;;){
//dosomthing
}
是否线程保持“做财产以后”直到线程被破坏,或程序完成?
感谢名单
当你调用thread_create()时生成将自身调用传递了函数的线程。例如:
pthread_t thread1;
pthread_create(&thread1, NULL, thread_do, NULL);
将创建一个新线程,新线程将运行函数thread_do()。 如果现在您已经定义thread_do()为:
void* thread_do(){
for(;;){
// do something
}
return NULL;
}
则线程将进入无限循环确实如此。
您的问题在您发布的源代码海中丢失。如果你删除所有多余的代码并询问一个清晰的概念,你可能有更大的机会获得有用的答案。 –
我认为你显示的是类似但不相关的pthreads代码的负载。我不完全确定你在问什么。 –
在上面的例子中,你的程序将永远运行直到线程终止。这取决于循环内部的内容。如果你的父线程想加入它将阻塞,直到完成。 – IanNorton