天天看點

Linux多線程學習(四)pthread_self

原型 :

#include <pthread.h>

pthread_t pthread_self(void);

說明 :

擷取本程序自身的 ID。程序 ID 類型是 pthread_t ,這個類型一般為long long 型,8個位元組。

測試代碼 :

#include <stdio.h>

#include <stdlib.h>

#include <pthread.h>

void  * thread_one ()

{     printf  ( "thread_one pid is %lld \n " ,   getpid ());

     printf  ( "thread_one tid is %lld \n " ,   pthread_self ());

}

void   * thread_two ()

{      printf  ( "thread_two pid is %lld \n " ,   getpid ());

     printf  ( "thread_two tid is %lld \n " ,   pthread_self ());

}

int   main  ( int   argc ,   char   ** argv )

{

     pid_t   pid ;

     pthread_t   tid_one ,   tid_two ;

     if  (( pid   =   fork ())  ==   - 1 )  {

         perror  ( "fork" );

         exit  ( EXIT_FAILURE );

     }   else   if  ( pid   ==   0 )  {

         pthread_create  ( & tid_one ,   NULL ,  ( void   * ) thread_one ,   NULL );

         pthread_join  ( tid_one ,   NULL );

     }   else   {

         pthread_create  ( & tid_two ,   NULL ,  ( void   * ) thread_two ,   NULL );

         pthread_join  ( tid_two ,   NULL );

     }

     wait  ( NULL );     return 0;

}

編譯 gcc -o pthread_self -lpthread pthread_self.c 運作結果:thread_one pid is 17480

thread_one tid is -1208779872

thread_two pid is 17479

thread_two tid is -1208779872

繼續閱讀