C · Avançado · Inglês · Técnico
thread local
Classe de armazenamento (_Thread_local, ou thread_local no C23) em que cada thread recebe sua própria cópia da variável, evitando compartilhamento e a necessidade de travas.
Onde usar
Usado para estado por thread, como o errno nas implementações modernas, ou buffers temporários. Em bibliotecas, substitui globais que tornariam as funções não reentrantes.
Em código
#include <stdio.h>
_Thread_local int contagem;
int main(void) {
contagem++;
printf("%d\n", contagem);
}Exemplos
Make the buffer thread local so each thread gets its own copy.
Deixe o buffer thread local para cada thread ter a sua cópia.
errno is thread local, so it is safe across threads.
O errno é thread local, então é seguro entre threads.
Cuidado
Achar que a variável é compartilhada entre threads: cada uma vê a sua cópia, que existe só durante a vida daquela thread.
Sinônimos
armazenamento local de thread
Antônimos
variável global