#include<stdlib.h>
#include<pthread.h>
#include<stdio.h>
#include<string.h>
#include<unistd.h>
const int count=15;
int flag;
void* even(void * a){
int i;
for (i = 1; i < count; i+=2)
{
if (flag==0)
{
flag=1;
printf("child thread is %d\n",i);
}
sleep(1);
}
return 0;
}
int main(int argc, char const *argv[])
{
int err;
int * rev;
pthread_t tid;
err=pthread_create(&tid,NULL,even,NULL);
if(err!=0){
printf("create pthread failure\n");
return 0;
}
for (int b = 0; b < count; b+=2)
{
if (flag==1)
{
flag=0;
printf("main thread is %d\n",b);
}
sleep(1);
}
pthread_exit(rev);
}
上面的程序让父子线程分别交替打印偶数和奇数,结果会交替,但是有一部分数没有输出。
请大家帮忙看看上面的问题在哪里