Thread storage duration
From cppreference.net
Объект, идентификатор которого объявлен со спецификатором класса хранения _Thread_local (начиная с C11) , имеет продолжительность хранения потока. Его время жизни составляет всё время выполнения потока, для которого он создан, и его сохраненное значение инициализируется при запуске потока. Существует отдельный объект для каждого потока, и использование объявленного имени в выражении ссылается на объект, связанный с потоком, выполняющим выражение. Результат попытки косвенного доступа к объекту с продолжительностью хранения потока из потока, отличного от того, с которым объект связан, определяется реализацией.
Пример
Запустить этот код
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; }
Возможный вывод:
(none)