pthread returning routine
我的例程必须有一个返回值并且需要返回。
即:
1 | int mySuperThread(void) |
我启动线程,它会做它需要做的事情。被问到的问题是如何不断地一次又一次地重新启动线程来完成它的工作,同时仍然能够返回一个整数(它是通过线程的运行生成的......)。请注意,据我了解,我需要通过线程的 int 返回值使用"return"调用。
建议?我试图弄清楚我是否缺少一些与 pthreads 相关的标志或函数,这些标志或函数允许线程在结束时重新启动。
首先,如果您使用 pthreads 调用上述函数,您可能会遇到一些麻烦。传递给
幸运的是,
1 | return (void*) 5; |
获取该返回值有点复杂。您对返回后继续线程感到困惑是对的;你不能。你想要做的是加入线程,它只是等到线程返回。完成后,您可以像以前一样重新启动线程。
1 2 3 4 5 6 7 | pthread_t mythread; int result; while(1){ pthread_create(&mythread, NULL, mySuperThread, NULL); pthread_join(mythread, &result); /* do something with result */ } |