当前位置: 首页 > news >正文

c++11~c++20 thread_local

线程局部存储是指对象内存在线程开始后分配,线程结束时回收且每个线程有该对象自己的实例,简单地说,线程局部存储的对象都是独立各个线程的。实际上这并不是一个新鲜个概念,虽然C++一直没因在语言层面支持它,但是很早之前操作系统就有办法支持线程局部存储了。下面是一个例子:

使用static

void test()
{static int i = 0;for (int j = 0;j<10;j++){i++;printf("i = %d\n",i);}
}int main()
{thread t1(test);t1.join();thread t2(test);t2.join();system("pause");return 0;
}

结果:
在这里插入图片描述

使用thread_local

void test()
{thread_local int i = 0;for (int j = 0;j<10;j++){i++;printf("i = %d\n",i);}
}

结果:
在这里插入图片描述


http://www.mrgr.cn/news/46646.html

相关文章:

  • 老外发微信时说“I‘ll ping you”是什么意思?发微信怎么用英语说柯桥学英语到哪里?
  • 计算机网络:数据链路层 —— 数据链路层概述
  • LSTM(长短时记忆网络)
  • 城门(动态规划)
  • 【时时三省】(C语言基础)指针笔试题7
  • TLS 加密的原理和过程
  • C++游戏开发指南
  • 操作系统-系统调用
  • [JAVA]连接数据库 并在Java中实现查询员工信息功能
  • OmniH2O——通用灵巧且可全身远程操作并学习的人形机器人(其前身H2O是HumanPlus的重要参考)
  • 解决Nginx出现“Too many open files”的问题
  • 测试基础知识(二)测试分类和质量模型
  • 手动更换SSL证书教程及注意事项
  • 五、Python基础语法(程序的输入和输出)
  • Windows系统安装Docker
  • QColormap Class
  • ctfshow-web 萌新题
  • 22.1 K8S之KubeSphere实现中间件高可用集群
  • 国内经典多模态大模型工作1——Qwen-VL系列(Qwen-VL、Qwen2-VL解读)
  • 深度学习的技术:学习ElasticSearch数据库