Junior — Middle
Qual é o papel e a finalidade do mecanismo de bloqueio (Lock) na programação multithread?
sobes.tech IA
Resposta da IA
O mecanismo de bloqueio (Lock) na programação multithread é usado para garantir a exclusão mútua ao acessar recursos compartilhados. Sua principal função é impedir que múltiplos threads modifiquem dados simultaneamente, o que pode levar a condições de corrida e comportamentos imprevisíveis do programa.
Quando um thread adquire o bloqueio, outros threads tentando obter o mesmo bloqueio esperarão até que ele seja liberado. Isso garante que apenas um thread por vez possa executar a seção crítica do código relacionada ao recurso compartilhado.
Exemplo em C#:
private readonly object _lockObj = new object();
public void IncrementCounter()
{
lock (_lockObj)
{
// Seção crítica
counter++;
}
}
Aqui, lock garante que a operação de incremento do contador seja atômica e não seja interrompida por outro thread.