Sobes.tech
Junior — Middle

Pode explicar o conceito de interlocked e sua aplicação na programação multithread?

sobes.tech IA

Resposta da IA

Interlocked é um conjunto de operações atômicas em C# que garantem a alteração segura de dados partilhados em ambientes multithread sem usar bloqueios pesados.

As operações principais do Interlocked incluem:

  • Incremento/Decremento — aumento ou diminuição atômica do valor.
  • CompareExchange — comparação e substituição do valor se for igual ao esperado.
  • Exchange — substituição do valor por um novo.

O uso do Interlocked permite evitar condições de corrida ao atualizar variáveis, como contadores ou flags, garantindo precisão e desempenho.

Exemplo de uso:

int counter = 0;

// Incremento atômico do contador
Interlocked.Increment(ref counter);

// Comparação e troca atômica
int original = Interlocked.CompareExchange(ref counter, 10, 5);

Assim, o Interlocked é uma ferramenta de baixo nível para trabalhar com segurança com dados partilhados em programação multithread.