Sdílet prostřednictvím


Lokální úložiště vláken (TLS)

Místní úložiště vláken (TLS) je způsob, kterým může každé vlákno v daném vícevláknovém procesu alokovat místa pro uložení dat specifických pro vlákno.Dynamicky vázaná (běhu) specifická data podprocesu je podporován formou TLS API ([TlsAlloc], [TlsGetValue], [TlsSetValue], a [TlsFree]).Win32 a kompilátor Visual C++ nyní podporují staticky vázaná (při načítání) data pro vlákno ještě navíc k existující implementaci rozhraní API.

Implementace rozhraní API pro TLS

Místní úložiště vláken je implementováno prostřednictvím vrstvy Win32 API a kompilátoru.Další informace naleznete v dokumentaci k rozhraní Win32 API pro [TlsAlloc], [TlsGetValue], [TlsSetValue], a [TlsFree].

Kompilátor Visual C++ zahrnuje klíčové slovo pro větší automatizaci operací TLS, spíše než prostřednictvím vrstvy rozhraní API.Tato syntaxe je popsána v dalším oddílu, implementace kompilátoru pro TLS.

Implementace kompilátoru pro TLS

Pro podporu TLS byl přidán do jazyků C a C++ nový atribut thread a je podporován kompilátorem Visual C++.Tento atribut je modifikátorem třídy rozšířeného úložiště, jak je popsáno v předchozím oddílu.Použijte klíčové slovo __declspec pro deklarování proměnné thread.Například následující kód deklaruje místní proměnnou vlákna integer a inicializuje ji hodnotou:

__declspec( thread ) int tls_i = 1;

Viz také

Koncepty

Multithreading s použitím jazyka C a prostředí Win32

Pravidla a omezení pro protokol TLS