嵌入式小虫

每天进步一点点

线程局部存储(Thread Local Storage,TLS)

线程局部存储(Thread Local Storage,TLS)用来将数据与一个正在执行的指定线程关联起来。

进程中的全局变量与函数内定义的静态(static)变量,是各个线程都可以访问的共享变量。在一个线程修改的内存内容,对所有线程都生效。这是一个优点也是一个缺点。说它是优点,线程的数据交换变得非常快捷。说它是缺点,一个线程死掉了,其它线程也性命不保; 多个线程访问共享数据,需要昂贵的同步开销,也容易造成同步相关的BUG。

如果需要在一个线程内部的各个函数调用都能访问、但其它线程不能访问的变量(被称为static memory local to a thread 线程局部静态变量),就需要新的机制来实现。这就是TLS。

功能:它主要是为了避免多个线程同时访存同一全局变量或者静态变量时所导致的冲突,尤其是多个线程同时需要修改这一变量时。为了解决这个问题,我们可以通过TLS机制,为每一个使用该全局变量的线程都提供一个变量值的副本,每一个线程均可以独立地改变自己的副本,而不会和其它线程的副本冲突。从线程的角度看,就好像每一个线程都完全拥有该变量。而从全局变量的角度上来看,就好像一个全局变量被克隆成了多份副本,而每一份副本都可以被一个线程独立地改变。

阅读更多
文章标签: thread 存储
个人分类: C++
上一篇the target processor (armv4i) is not installed,问题解决方法
下一篇copybit调研报告
想对作者说点什么? 我来说一句

ELF -- 线程本地存储

2010年02月04日 616KB 下载

线程局部存储TLS

2015年07月06日 511KB 下载

AndroidLocalStorage

2015年09月14日 1020KB 下载

TLS和SSL的区别

2014年03月13日 34KB 下载

《SSL和TLS》中文版

2010年04月06日 6.4MB 下载

TLS协议包抓包结果文件

2015年07月30日 1.54MB 下载

通过TLS发送邮件

2012年05月30日 28KB 下载

没有更多推荐了,返回首页

关闭
关闭