Místní ú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é (runtime) 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;