Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La memoria locale di thread (TLS) rappresenta il metodo attraverso il quale ogni thread di un determinato processo multithread può allocare le posizioni in cui memorizzare i propri dati specifici.I dati specifici del thread di esecuzione associati in modo dinamico sono supportati tramite L'API TLS ([TlsAlloc], [TlsGetValue], [TlsSetValue]e [TlsFree]).In Win32 e nel compilatore di Visual C++ attualmente sono supportati i dati per thread associati in modo statico al caricamento, oltre all'implementazione dell'API esistente.
Implementazione dell'API per TLS
La memoria locale di thread viene implementata sia a livello dell'API Win32 che a livello del compilatore.Per ulteriori informazioni, vedere la documentazione dell'API Win32 per [TlsAlloc], [TlsGetValue], [TlsSetValue]e [TlsFree].
Nel compilatore di Visual C++ è stata inserita una parola chiave per rendere più automatiche le operazioni TLS, rispetto alle API.La relativa sintassi è descritta nella sezione successiva "Implementazione del compilatore per TLS".
Implementazione del compilatore per TLS
Per supportare TLS, è stato aggiunto ai linguaggi C e C++ un nuovo attributo thread, supportato dal compilatore di Visual C++.Questo attributo è un modificatore esteso della classe di memorizzazione, come descritto nella sezione precedente.Utilizzare la parola chiave __declspec per dichiarare una variabile con l'attributo thread.Nel codice seguente, ad esempio, viene dichiarata una variabile locale di thread di tipo integer e quindi inizializzata con un valore:
__declspec( thread ) int tls_i = 1;