Локальные переменные существуют в функции.Как только функция вернется, они исчезнут.Потоковые переменные существуют в потоке;как только нить выходит, они исчезают.С точки зрения срока службы можно сказать, что TLV эквивалентны локальным переменным функции запуска потока, за исключением того, что вам не нужно явно передавать ссылку на них в код ниже.
Обратите внимание, что естьдва способа использования TLV в родной программе Windows.Microsoft C ++ имеет модификатор __declspec(thread)
, а также семейство функций API Windows - TlsAlloc()
и т. П.
- Другие потоки могут обращаться к локальным переменным потока, если указатель / ссылка каким-то образом переданыим.Однако методы доступа vanilla будут возвращать экземпляр текущего потока.
Если вы попытаетесь получить доступ к нему из другого потока после завершения создания потока, это неопределенное поведение.
Это деталь реализации.Но, скорее всего, в куче.
Хм, решать вам.Теоретически, почти все, что они обычно делают с TLV, можно обойтись и без ...
Пока поток работает.
Определить "эксклюзив".