Когда вы вызываете thread_create (), созданный поток сам вызывает функцию, которую вы передали.Например,
pthread_t thread1;
pthread_create(&thread1, NULL, thread_do, NULL);
создаст новый поток, а новый поток запустит функцию thread_do ().Если теперь вы ранее определили thread_do () как:
void* thread_do(){
for(;;){
// do something
}
return NULL;
}
, тогда поток действительно перейдет в бесконечный цикл.