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

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.kler.cn/news/340698.html

相关文章:

  • Docker基本操作命令
  • 大数据-158 Apache Kylin 安装配置详解 集群模式启动
  • 创建osd加入集群
  • Linux环境通过APT 仓库安装版PostgreSQL 数据库实战
  • Go语言--快速入门
  • 内存泄露和内存溢出案例解析
  • 基于微信小程序的生鲜订购小程序系统(SpringBoot+Vue+Uniapp+MySQL)
  • LeetCode 每日一题 2024/9/30-2024/10/6
  • 重拾记录生活和成长的习惯
  • 浏览器前端向后端提供服务
  • Java实现图书管理系统
  • 软件测试(平铺版本)
  • Redis数据库与GO完结篇:redis操作总结与GO使用redis
  • 适合初学者的[JAVA]: 服务框架常见问题
  • Java基础(中)
  • Nginx05-基础配置案例
  • 【数据结构】红黑树相关知识详细梳理
  • 二分算法详解
  • langchain入门合集
  • 线程安全-原子性,可见性,有序性