• thread_local 线程变量存储.tbss段或.tdata段


    C++11的特性
    编写程序如下,程序摘抄于其他博客。

    #include 
    #include 
    using namespace std;
    
    int globalvar=2;
    
    void tFunc(int a)
    {
            thread_local int g_d=3;
            for(int i = 0; i < a; ++i)
            {
                    g_d++;
            }
            cout<<"thread:"<
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    编译:

    g++ 1.cpp -g -lpthread -o 1
    
    • 1

    然后查看变量所在段:

    objdump -tT 1 | grep -E 'globalvar|g_d'
    
    • 1

    已经初始化,所以在.data和.tdata段
    在这里插入图片描述参考手册:https://docs.oracle.com/cd/E23824_01/html/819-0690/chapter8-5.html

  • 相关阅读:
    Vue3---uni-app--高德地图引用BUG
    Yuan 2.0-M32 是一个基于 Yuan 2.0 架构的双语混合专家 (MoE) 语言模型,旨在以更少的参数和计算量实现更高的准确率
    粒子特效-Xffect
    trunc函数与truncate函数的一点区别
    WAF的工作原理
    Java关于接口
    webpack原理篇(五十三):Tapable插件架构与Hooks设计
    visual studio 2022 opencv 4.6.0 创建测试工程
    javascript之for循环介绍
    人工智能、深度学习、机器学习常见面试题41~55
  • 原文地址:https://blog.csdn.net/GooTal/article/details/126447753