天天看点

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

继续阅读