Linux多线程学习(四)pthread_self

原型
#include
pthread_t pthread_self(void);


说明
获取本进程自身的 ID。进程 ID 类型是 pthread_t ,这个类型一般为long long 型,8个字节。

测试代码
#include
#include
#include

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

你可能感兴趣的:(linux多线程)