Almacenamiento local de subprocesos (TLS)

Actualización: noviembre 2007

Almacenamiento local de subprocesos (TLS) es el método por el cual cada subproceso de un proceso multiproceso dado puede asignar ubicaciones en las que almacenar datos específicos del subproceso. La API de TLS (TlsAlloc, TlsGetValue, TlsSetValue y TlsFree) permite utilizar datos específicos de un subproceso enlazados dinámicamente (en tiempo de ejecución). Además de la implementación de la API existente, Win32 y el compilador de Visual C++ son ahora compatibles con datos específicos de un subproceso enlazados estáticamente (en tiempo de carga).

Implementación de la API para TLS

El almacenamiento local de subprocesos (TLS) se implementa por medio de la API Win32 y del compilador. Para obtener más información, consulte la documentación de la API Win32 para TlsAlloc, TlsGetValue, TlsSetValue y TlsFree.

El compilador de Visual C++ incluye una palabra clave para automatizar más las operaciones de TLS, en vez de utilizar el nivel de la API. Esta sintaxis se describe en la siguiente sección: Implementación del compilador para TLS.

Implementación del compilador para TLS

Para permitir la utilización de TLS, se ha agregado un nuevo atributo, thread, a los lenguajes C y C++, que es compatible con el compilador de Visual C++. Este atributo es un modificador de clase de almacenamiento extendido, según se describe en la sección anterior. Para declarar una variable thread, utilice la palabra clave __declspec. Por ejemplo, el código siguiente declara una variable local de subproceso de entero y la inicializa con un valor:

__declspec( thread ) int tls_i = 1;

Vea también

Conceptos

Subprocesamiento múltiple con C y Win32

Reglas y limitaciones para TLS