Sobes.tech
Junior — Middle

Qual é a diferença entre uma situação de acesso concorrente, que leva ao funcionamento incorreto do programa, e às condições de corrida por recursos?

sobes.tech IA

Resposta da IA

Situação de condição de corrida (race condition) ocorre quando vários threads ou processos acessam simultaneamente um recurso comum sem sincronização adequada, levando a um comportamento imprevisível do programa.

A contenção de recursos (resource contention) é uma situação em que vários threads ou processos tentam acessar um recurso limitado, causando atrasos ou bloqueios, mas o programa pode funcionar corretamente se o acesso for gerenciado corretamente.

Em outras palavras, race condition é um erro na lógica de acesso que leva a resultados incorretos, e resource contention é um problema de desempenho devido à competição pelo recurso.

Exemplo:

  • Race condition: dois threads aumentam um contador ao mesmo tempo sem bloqueio, o valor final está incorreto.
  • Resource contention: dois threads aguardam acesso ao banco de dados, o que desacelera o trabalho, mas os dados permanecem corretos.