0
我是新来的,并用pthread编程noob。 我的问题是在一个C++类,我试图创建封装线程。 阅读我看到,当我创建一个pthread时,我需要将C函数传递给它在启动时运行的pthread_create ...因此,当pthread运行该函数时,它不会在标准输出上输出消息!没有cout打印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
我希望有人明白了! 对不起我的英文! :) Inzirio
谢谢我会试试!我不会那么想! ;) – inzirio 2012-03-10 16:21:17