如何在 C 程序 运行 期间添加线程?

How to add threads during run of program in C?

我正在根据用户需要添加线程。这意味着我 stdin 如果他想要新线程我创建它。用户给线程指定了特定的名称,所以我不能比他想要的更快地创建它。 我的部分代码:

while(read != EOF) {
    if(user_wants_new_thread) {

        worker_t *data = malloc(sizeof(worker_t));

        data->name  = malloc((strlen(arg1) + 1) * sizeof(char));
        strcpy(data->name, arg1);

        pthread_create(&thread, NULL, worker, (void *) data);
        pthread_join(thread, NULL);

        pthread_mutex_lock(&mutex);

        pthread_cond_signal(&cond);

        pthread_mutex_unlock(&mutex);

    }
}

线程无需等待即可开始工作。现在它等待 worker 函数的完成。 谢谢你的帮助:)

是的,当我使用 pthread_join(thread, NULL); 时,它会等到创建的线程结束。所以删除这一行是很有必要的。