如何在Windows和Linux下获取当前线程的ID号

Linux下获取当前线程ID号函数:

pthread_t pthread_self();

返回:当前线程的ID号

pthread_t 数据类型的定义如下:

typedef unsigned long int pthread_t;

sizeof(pthread_t) = 4,4个字节的整数。

 

Windows下获取当前线程ID号的函数:

DWORD GetCurrentThreadId();

返回值:当前线程的ID号

DWORD数据类型定义:

typedef unsigned long DWORD;

 

在Windows下pthread-win库的pthread_t定义如下:

typedef struct {

   void * p;                   /*Pointer to actual object */

   unsigned int x;             /*Extra information - reuse count etc */

} ptw32_handle_t;

typedef ptw32_handle_t pthread_t;

与Linux的thread_t不一样,它是一个结构,不是一个整数值

 

在Windows和Linux下可用的获取线程ID号的内联函数如下:

#ifdef WIN32

#include

#else

#include

#endif

inline unsigned int PthreadSelf()

{

#ifdef WIN32

         return::GetCurrentThreadId();

#else

         returnthread_self();

#endif

}

你可能感兴趣的:(编程基础)