首页 > 其他分享 >获取线程tid

获取线程tid

时间:2024-09-18 15:48:09浏览次数:1  
标签:__ return cast defined 获取 线程 tid static

size_t getTid()
{
#ifdef _WIN32
    return static_cast<size_t>(::GetCurrentThreadId());
#elif defined(__linux__)
#if defined(__ANDROID__) && defined(__ANDROID_API__) && (__ANDROID_API__ < 21)
#define SYS_gettid __NR_gettid
#endif
    return static_cast<size_t>(::syscall(SYS_gettid));
#elif defined(_AIX)
    struct __pthrdsinfo buf;
    int reg_size = 0;
    pthread_t pt = pthread_self();
    int retval = pthread_getthrds_np(&pt, PTHRDSINFO_QUERY_TID, &buf, sizeof(buf), NULL, &reg_size);
    int tid = (!retval) ? buf.__pi_tid : 0;
    return static_cast<size_t>(tid);
#elif defined(__DragonFly__) || defined(__FreeBSD__)
    return static_cast<size_t>(::pthread_getthreadid_np());
#elif defined(__NetBSD__)
    return static_cast<size_t>(::_lwp_self());
#elif defined(__OpenBSD__)
    return static_cast<size_t>(::getthrid());
#elif defined(__sun)
    return static_cast<size_t>(::thr_self());
#elif __APPLE__
    uint64_t tid;
    pthread_threadid_np(nullptr, &tid);
    return static_cast<size_t>(tid);
#else // Default to standard C++11 (other Unix)
    return static_cast<size_t>(std::hash<std::thread::id>()(std::this_thread::get_id()));
#endif
}

标签:__,return,cast,defined,获取,线程,tid,static
From: https://www.cnblogs.com/linxisuo/p/18418681

相关文章

  • VBA 获取字段标题代码轻松搞定
    hi,大家好!最近又有一段时间没和大家唠嗑了,最近也没有时间给大家开直播,天天忙,但不知道在忙啥!那今天我们来讲点啥好玩的呢?今天是老师节,那就先祝各位老师节日快乐!我们在开发过程中,很多情况,大家都会去使用表,当然也有用到链接表的情况,那如果用VBA该怎么获取字段名的标题呢?我们今天就来看......
  • Java EE(多线程)
    1.认识线程(Thread)  1️⃣每个线程都是一个独立的执行流,都可以单独参与cpu的调度.  2️⃣每个进程里至少包含一个线程时(及为主线程)或多个线程,同一个进程创建多个线程时,线程会共享同一份资源(内存➕   文件描述符.)     ⚠️:多个进程之间并不会共享同一份资源......
  • Java之线程篇四
    目录volatile关键字volatile保证内存可见性代码示例代码示例2-(+volatile)volatile不保证原子性synchronized保证内存可见性wait()和notify()wait()方法notify()理解notify()和notifyAll()wait和sleep的对比volatile关键字volatile保证内存可见性volatile修饰......
  • 第八章,多线程
    高级编程文章目录高级编程第八章,多线程一,多线程二,主线程三,线程的创建和启动四,线程的状态五,同步方法六,线程安全的类型七,常见类型对比第八章,多线程一,多线程什么是多线程如果在一个进程中同时运行了多个线程,用来完成不同的工作,则称之为“多线程”多个线程交替占......
  • springboot整合mybatis(使用druid线程池)
    pom引入<mybatis.version>2.3.2</mybatis.version> <druid.version>1.1.23</druid.version><!--数据库--><dependency><groupId>org.mybatis.spring.boot</groupId><art......
  • java获取object中的value
    在Java中,获取对象(Object)中的值通常取决于对象的类型以及它的结构。Java是一种面向对象的编程语言,对象可以包含不同类型的数据,包括基本数据类型(如int,double等)的包装类、其他对象以及数组等。下面列出了一些常见的方法来获取对象中的值:1.直接访问(针对基本数据类型和包装类)如果你的......
  • 09 获取需求的方法
    在软件开发的初期阶段,准确获取需求是至关重要的。以下是对您提到的各种软件需求获取方式的详细解释:搜集资料定义:通过搜索互联网、图书馆、行业报告等渠道,收集与项目相关的背景信息、市场趋势、技术资料等。作用:为需求分析提供宏观视角,帮助团队理解项目的市场定位、技术挑战和......
  • 替西帕肽;Mounjaro;Tirzepatide;CAS:2023788-19-2
    【替西帕肽Tirzepatide简介】    替西帕肽是一种GIP/GLP-1受体激动剂,由39个氨基酸的多肽组成。Tirzepatide(LY3298176)是葡萄糖依赖性胰岛素营养多肽(GIP)和胰高血糖素样肽-1(GLP-1)受体双重激动剂。Tirzepatide(LY3298176)在血糖控制和体重减轻方面的疗效明......
  • ExtJs获取记录(Record)
    想要通过特定条件获取当前Store的某个Record一般常用两个方法findRecord和findNode这两个方法都有两个必选参数fieldName和value参数说明:fieldName:需要查找的record的字段名称,value:字段值带入sql语句会比较好理解select*from[表]{store}where[字段]{fieldName}......
  • 手机上的技术解锁:自动刷新获取演唱会门票
    主要方法:get_cookie :打开 国内领先的演出票务平台官网,引导用户登录并保存登录后的cookies。set_cookie :载入之前保存的cookies,以实现自动登录。login :访问目标购票页面并设置cookie。enter_concert :根据提供的配置和参数打开浏览器,进入 国内领先的演出票......