Thread storage duration
Un objeto cuyo identificador se declara con el especificador de clase de almacenamiento _Thread_local (desde C11) tiene duración de almacenamiento de hilo. Su tiempo de vida es la ejecución completa del hilo para el cual se crea, y su valor almacenado se inicializa cuando el hilo comienza. Existe un objeto distinto por cada hilo, y el uso del nombre declarado en una expresión se refiere al objeto asociado con el hilo que evalúa la expresión. El resultado de intentar acceder indirectamente a un objeto con duración de almacenamiento de hilo desde un hilo diferente al que está asociado el objeto está definido por la implementación.
Ejemplo
const double PI = 3.14159; /* const variable is global to all threads */ _Thread_local unsigned int seed; /* seed is a thread-specific variable */ int main(void) { return 0; }
Salida posible:
(none)