C Thread只运行一次

时间:2017-04-12 09:20:07

标签: c pthreads

我想在一个进程内并行运行一些作业。 由于某种原因,我创建的主题只运行一次,请帮助我了解我的错误在哪里。

#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

1 个答案:

答案 0 :(得分:2)

您应该将print_thread视为新线程&#34; main&#34;。它将从头到尾运行,然后线程将退出。除非你在print_thread中有某种循环,否则它永远不会存在。