ExpertiDict

C · Avançado · Inglês · Técnico

thread local

/θɹɛd ˈloʊ.kəl/substantivo

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

Veja também

Todos os termos de C