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

上一篇:记一次线上java程序CPU占用过高问题排查


下一篇:Web实战之查询SQL server选课信息,输出表格