运行时线程创建

时间:2012-04-23 07:20:33

标签: c multithreading

在运行时,如何创建线程?

我将从标准输入 - 终端 - 获取线程,然后我将根据此数字创建线程。但是,怎么样?

Ex: 
   input : N,                N is integer 

   in main function 

                create N thread 

编辑:平台Linux

1 个答案:

答案 0 :(得分:2)

是的,线程(如果我们假设我们正在使用pthread)是通过调用 pthread_create 创建的,您可以从循环中调用它。

这是创建N个线程的C函数的开始:

int start_N_threads(int N) {
    pthread_t threads[N];
    printf("Starting %d thread(s)...\n", N);
    for (int i = 0; i < N; ++i) {
        if (pthread_create(&threads[i], NULL, thread_body, (void*)&results[i]) != 0) {
            printf("Couldn't create thread %d.\n", i);
        }
    }
    printf("The %d thread(s) are running.\n", N);