我想在一个进程内并行运行一些作业。 由于某种原因,我创建的主题只运行一次,请帮助我了解我的错误在哪里。
#include <stdio.h>
#include <pthread.h>
#include <unistd.h>
void * print_thread (void * var)
{
int *p_var = (int *)var;
printf("this is a thread %d\n", ++(*p_var));
}
int main()
{
int x=0;
pthread_t thread1;
if(pthread_create(&thread1, NULL, print_thread, &x))
{
fprintf(stderr, "Error creating thread\n");
return 1;
}
while (1)
{
usleep(100000);
}
return 0;
}
# gcc -o thread pthread_example.c -lpthread
# ./thread
this is a thread 1
答案 0 :(得分:2)
您应该将print_thread视为新线程&#34; main&#34;。它将从头到尾运行,然后线程将退出。除非你在print_thread中有某种循环,否则它永远不会存在。