Я новичок здесь и noob с программированием pthread.Моя проблема в классе C ++, который я пытаюсь создать для инкапсуляции потока.Читая вокруг, я видел, что когда я создаю pthread, мне нужно передать функцию C в pthread_create, чтобы он запускался при запуске ... Итак, когда pthread запускает эту функцию, он не отслеживает сообщение на stdout!
Но лучше, если вы увидите код: (очевидно, он скопирован и вставлен из интернет-учебника ^^)
void *runAtStart( void *threadid)
{
long tid;
tid = (long)threadid;
printf("Hello World! It's me, thread #%ld!\n", tid);
pthread_exit(NULL);
}
Thread::Thread() {
pthread_t threads[1];
int rc;
long t;
for(t=0; t<1; t++){
printf("In main: creating thread %ld\n", t);
rc = pthread_create(&threads[t], NULL, runAtStart, (void *)t);
if (rc){
printf("ERROR; return code from pthread_create() is %d\n", rc);
// exit(-1);
}
}
}
в основном я называю это как:
int main()
{
Thread *th=new Thread();
return 0;
}
сгенерированный вывод:
In main: creating thread 0
Я надеюсь, что кто-то понял!Извините за мой английский!:) Inzirio