Udostępnij za pośrednictwem


Lokalny magazyn wątków (TLS)

Lokalnego magazynu wątków (TLS) jest to metoda, za pomocą której poszczególne wątki w wielowątkowym procesie danego można przydzielić miejsca do przechowywania danych zależnych od wątku.Dynamicznie danych zależnych od wątku bound (run-time) jest obsługiwana na zasadzie TLS API ([TlsAlloc], [TlsGetValue], [TlsSetValue], i [TlsFree]).Win32 i kompilator języka Visual C++ obsługuje obecnie danych statycznie związanego (czas ładowania) na wątek oprócz istniejącej implementacji interfejsu API.

Implementacja API dla TLS

Lokalnego magazynu wątków jest implementowana za pośrednictwem warstwy interfejsu Win32 API i kompilatora.Aby uzyskać więcej informacji, zobacz dokumentację interfejsu Win32 API dla [TlsAlloc], [TlsGetValue], [TlsSetValue], i [TlsFree].

Kompilator języka Visual C++ zawiera słowo kluczowe, aby zrobić więcej automatyczne operacje TLS, a nie za pośrednictwem interfejsu API warstwy.Ta składnia opisano w następnej sekcji, kompilator implementacji TLS.

Kompilator implementacji TLS

Do obsługi TLS, nowy atrybut wątku, został dodany do języków C i C++ i jest obsługiwana przez kompilator Visual C++.Ten atrybut jest modyfikatora klasy magazynu rozszerzonego zgodnie z opisem w poprzedniej sekcji.Użycie __declspec słowo kluczowe, aby zadeklarować wątku zmiennej.Na przykład poniższy kod deklaruje zmiennej lokalnej wątku całkowitą i inicjuje on o wartości:

__declspec( thread ) int tls_i = 1;

Zobacz też

Koncepcje

Wielowątkowość z językiem C i podsystemem Win32

Reguły i ograniczenia dotyczące TLS