我想做并行线程。示例:我的输出如下:thread1 thread3 thread4 thread2 ... 在 main 中:
pthread_t tid;
int n=4;
int i;
for(i=n;i>0;i--){
if(pthread_create(&tid,NULL,thread_routine,&i)){
perror("ERROR");
}
pthread_join(tid,NULL);
}
我的功能(例程)是:
void *thread_routine(void* args){
pthread_mutex_lock(&some);
int *p=(int*) args;
printf("thread%d ",*p);
pthread_mutex_unlock(&some);
}
我总是得到不平行的结果:thread1 thread2 thread3 thread4。我希望这些线程同时运行 - 并行。也许问题是位置 pthread_join,但我该如何解决呢?