zoukankan      html  css  js  c++  java
  • Linux下获取线程ID tid的方法

      使用Linux Redhat7编写代码的时候,需要使用 gettid() 函数获取线程ID。使用 man gettid 命令查看了一下,gettid()函数的头文件是 #include<sys/types.h>, 但是导入了该头文件以后,再使用 gettid() 函数程序在gcc编译的时候,仍然会报 undefined reference to 'gettid'。

      网上查阅资料以后发现,需要使用 syscall 的方式进行调用。所以可以用如下方式进行一个简单的封装,这样就可以使用 gettid()了

    #include <unistd.h>
    #include <sys/syscall.h>
    #define gettid() syscall(__NR_gettid)
    

      或者也可以使用 pthread_self(),该函数可以获取当前线程的线程ID。

      具体为什么要这样处理的原因还不太清楚,既然可以查到函数,并且也导入了相应的头文件,但是还是使用失败,具体原因后续查阅了解后再做补充。

  • 相关阅读:
    删除git上已经提交的文件
    spark安装
    Ganglia+nagios 监控hadoop资源与报警
    自定义标签库开发与el表达式
    JavaBean与MVC
    Jsp-查漏补缺
    HttpSession
    Cookie
    HttpServleRequest
    Servlet学习-查漏补缺
  • 原文地址:https://www.cnblogs.com/xuyong437/p/11275296.html
Copyright © 2011-2022 走看看