GeraProva GeraProva Provas com IA para professores do Brasil
Computação8º anoBNCC EF08CO05Média⏱ medio

Em um programa com múltiplas threads que atualizam uma mesma variável compartilhada, qual mecanismo previne…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF08CO05

Compreender os conceitos de paralelismo, concorrência e armazenamento/ processamento distribuídos.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

Em um programa com múltiplas threads que atualizam uma mesma variável compartilhada, qual mecanismo previne condições de corrida durante a atualização desse dado?

  1. A) Uso de arrays para compartilhar dados entre threads.
  2. B) Implementação de delays aleatórios entre acessos à variável.
  3. C) Uso de mutex/lock (exclusão mútua) para sincronizar acesso
  4. D) Uso de variáveis globais que são acessíveis a todas as threads.
  5. E) Proibição de uso de variáveis compartilhadas entre threads.

✅ Resposta correta: alternativa C

Resolução passo a passo

  1. A questão pergunta qual mecanismo impede condições de corrida quando várias threads atualizam a mesma variável compartilhada. Condição de corrida ocorre quando o resultado depende da ordem imprevisível em que as threads acessam o dado, e uma atualização pode ser perdida ou corrompida.
  2. Resolvendo por conta própria, a solução padrão é garantir exclusão mútua: somente uma thread por vez executa a seção crítica (a leitura, cálculo e escrita da variável). Isso é feito com mutex ou lock, que bloqueia o acesso enquanto uma thread está atualizando o dado.
  3. A alternativa C descreve exatamente esse mecanismo, portanto está correta e coincide com o gabarito oficial.
  4. Por que as outras estão erradas:
  5. A) Arrays são apenas uma estrutura de dados para armazenar valores; não impedem simultaneidade no acesso.
  6. B) Delays aleatórios não garantem nada, apenas reduzem a probabilidade de conflito sem eliminá-la.
  7. D) Variáveis globais são justamente o que gera o problema, pois ficam acessíveis a todas as threads sem controle.
  8. E) Proibir variáveis compartilhadas não é um mecanismo de sincronização e inviabiliza o trabalho cooperativo entre threads que a questão pressupõe.

💡 Dica: Considere os mecanismos de sincronização em programação.

Alternativa por alternativa

A Erradaerro: Conceitual

O aluno acredita que organizar os dados em arrays resolve o compartilhamento, confundindo estrutura de armazenamento com controle de acesso concorrente.

B Erradaerro: Senso comuma que mais engana

O aluno imagina que, espaçando os acessos com atrasos aleatórios, as threads nunca se sobrepõem, sem perceber que isso apenas diminui a chance de conflito sem garantir ausência de corrida.

Por que engana: Escolher a alternativa que sugere o uso de delays, acreditando que isso é suficiente para evitar condições de corrida.

C Correta

Mutexes garantem que apenas uma thread execute a seção crítica por vez, evitando interleavings que causam condições de corrida e estado inconsistente.

D Erradaerro: Conceitual

O aluno associa variável global a dado seguro para todos, ignorando que o acesso simultâneo sem controle a uma variável global é justamente a origem da condição de corrida.

E Erradaerro: Interpretação

O aluno entende que a forma de evitar problemas é eliminar o compartilhamento de dados, sem perceber que a questão trata de controlar o acesso, não de proibi-lo.

Raio-X da questão

Dificuldade Média
Bloom Analisar
Leitura medio
Discriminação alto
Peso pedagógico alto
Autonomia do enunciado completo
Cobertura da habilidade unica
🧪 Simulado🩺 Diagnóstico🧮 Exige cálculo🏠 Cotidiano🔗 Interdisciplinar⭐ Representativa✍️ direta🧩 consolidacao
🎯 Conceito central

condições de corrida

📌 Objetivo

avaliacao

🧱 Pré-requisitos

sincronização de threads · variáveis compartilhadas

📚 Reveja

Revisar os mecanismos de sincronização em programação com threads.

⚠️ Erro mais comum

Escolher a alternativa que sugere o uso de delays, acreditando que isso é suficiente para evitar condições de corrida.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

abstrato

Questões parecidas com resolução

Todas as questões de Sistemas distribuídos e internet - Fundamentos de sistemas distribuídos

🔎 Procurar outra questão

Procure no banco do GeraProva pelo tema ou por um trecho do enunciado. Cada questão já vem com resolução comentada e a análise de cada alternativa.

Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog

Ocorreu um erro inesperado. Recarregar X

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.