2.9. 线程局部存储

线程局部存储 (TLS) 是静态存储类(如堆栈),对于每个执行线程,它只存在一次。 进程中的每个线程都有一个可以存储线程特定数据的位置。 系统将分配变量,使现有的每个线程都有一个变量实例。

全局索引用来为该进程可以访问的每个线程提供唯一的数据。 当进程启动时,会有一个线程来分配索引。 此后,其他线程将使用该索引来检索与索引相关的唯一数据。 当线程启动时,它会分配动态内存块,并将 TLS 指针存储到此内存中。 通常,TLS 指针指向由库函数返回的特定内存位置。 这在 ARM MPCore™ 上是一个 CP15 寄存器。

每个线程终止之前,将会释放其动态内存,且指向该线程中的线程局部变量的所有指针都将失效。 该进程终止之前,将会释放索引。

有关详细信息,请参阅《编译器参考指南》第 4-28 页的__declspec(thread)

Copyright © 2002-2007 ARM Limited. All rights reserved. ARM DUI 0205HC
Non-Confidential