如何在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);时,它将等待创建的线程结束。所以有必要删除这一行。

最新更新