【发布时间】:2012-03-10 23:47:35
【问题描述】:
我是新来的,并且是 pthread 编程的菜鸟。 我的问题是在一个 C++ 类中,我试图创建它来封装一个线程。 阅读周围我发现,当我创建一个 pthread 时,我需要将一个 C 函数传递给它在启动时运行的 pthread_create ......所以,当 pthread 运行该函数时,它不会在标准输出上输出消息!
但是如果你看到代码会更好: (显然是从网络教程复制粘贴的^^)
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
希望有人理解! 对不起我的英语不好! :) 因齐里奥
【问题讨论】: