我试图弄清楚pthread_exit
使用此示例代码的用法:
void* PrintVar(void* arg)
{
int * a = (int *) arg; // we can access memory of a!!!
printf( "%d\n", *a);
}
int main(int argc, char*argv[])
{
int a, rc;
a = 10;
pthread_t thr;
pthread_create( &thr, NULL, PrintVar, &a );
//why do I need it here?//
pthread_exit(&rc); /* process continues until last
threads termintates */
有两件事我不太确定:
当我们使用 pthread_create 时 - 我正在传递“a”参数的地址,但是这个参数是否被“保存”在 PrintVar 函数的“arg”下?例如,如果我正在使用 :
PrintVar(void *blabla)
,并想从 main 函数传递 2 个参数:int a = 10, int b= 20
.. 我该怎么做?为什么需要 pthread_exit?这意味着 - 等待过程结束 - 但如果我不使用那条线,我会得到什么情况?
多谢!