有一个在我的线程怪异的行为:ç多线程
void * foo(void * nic){
printf("foo");
}
void * threadF(void * pointer){
printf("1\n");
pthread_t threadT;
pthread_attr_t attr;
pthread_attr_init (&attr);
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
pthread_create(&threadT,NULL,&foo,(void*)NULL);
printf("2\n");
while (!feof(stdin)){
int id, in, out;
fscanf(stdin,"%d:%d:%d",&id,&in,&out);
}
}
int main(){
pthread_attr_t attr;
pthread_attr_init (&attr);
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
pthread_t threadT;
pthread_create(&vlaknoVstupu,&attr,&threadF,(void*)&data);
pthread_join(threadT,NULL);
pthread_attr_destroy (&attr);
}
// I skipped irelevant parts of code...
的事情是,有时输出为12foo
,但通常只是12
。 然后该功能等待输入。我希望它始终是12foo
。有谁知道我的期望为什么错了?
编辑:当我输入像1:1:1
一些投入,这导致通过while循环再下去,有是总是foo
输出。
谢谢,这有帮助。 – coubeatczech 2010-04-24 14:33:42