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.