Sdílet prostřednictvím


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;

Viz také

Koncepty

Multithreading s C a Win32

Pravidla a omezení pro protokol TLS