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 */
よくわからないことが2つあります。
pthread_create を使用している場合 - 「a」パラメーターのアドレスを渡していますが、このパラメーターは PrintVar 関数の「arg」の下に「保存」されていますか? たとえば、 : を使用して
PrintVar(void *blabla)
いて、メイン関数から 2 つのパラメーターを渡したい場合:int a = 10, int b= 20
.. どうすればそれを行うことができますか?pthread_exit が必要な理由 これは、プロセスが終了するのを待つことを意味しますが、その行を使用しない場合、どのようなシナリオが考えられますか?
どうもありがとう!