我们可以自已定义实现方法,如下:
#include <sys/syscall.h> /*此头必须带上*/
pid_t gettid()
{
return syscall(SYS_gettid); /*这才是内涵*/
}
然后使用的时候直接printf("\n%s Thread id : gettid() == %d\n",__FUNCTION__,gettid()); 便可查阅当前thread ID。
我的项目中thread ID都是顺序下来的,进程也即主线程ID为45,然后分别创建了4个子线程,其按照创建顺序,分配的ID分别为46,47,48,49。
下面说下使用命令查看thread ID。
# pgrep test /*test为正在运行的application*/
45 /*此为进程PID也即主线程ID,二者相同*/
所有进程PID都能在/proc下看到,ls /proc 的话,所有数字都代表一个进程,下一步
# ls /proc/45/task/
45 46 47 48 49 /* ok 该进程下的所有thread ID都展现在我们眼前了*/
end