用c创建一个pthread,等待创建线程完成执行[关闭]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用c创建一个pthread,等待创建线程完成执行[关闭]相关的知识,希望对你有一定的参考价值。
下面的代码,我创建一个pthread,然后我让主线程等待创建的线程完成执行:
#include <stdio.h>
#include <pthread.h>
void * createThread(void * u){
printf("Tread has been created");
}
int main(){
//pthread_t tid;
//pthread_create(&tid,NULL,&createThread,NULL);
//printf("Main thread");
//pthread_join(tid,NULL);
pthread_t tid[2];
int i;
for(i = 0; i < 2; i++){
pthread_create(&tid[i],NULL,&createThread,NULL);
}
int j;
for(j = 0; j < 2; i++){
pthread_join(tid[j],NULL);
}
return 0;
}
当我通过起诉gcc 1_4.c -lpthread
然后./a.out
来运行这个我必须等待很长时间才能在终端中看到答案!
我做错了什么,或者我无法看到问题。
答案
在以下循环中,您将增加i
而不是j
:
for(j = 0; j < 2; i++){
pthread_join(tid[j],NULL);
}
将其更改为以下,它将正常工作:
for(j = 0; j < 2; j++){
pthread_join(tid[j],NULL);
}
以上是关于用c创建一个pthread,等待创建线程完成执行[关闭]的主要内容,如果未能解决你的问题,请参考以下文章