Em sistemas que executam várias threads, o que se entende por concorrência ao acessar a mesma variável?
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Compreender os conceitos de paralelismo, concorrência e armazenamento/ processamento distribuídos.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Em sistemas que executam várias threads, o que se entende por concorrência ao acessar a mesma variável?
- A) Concorrência é a execução de todas as threads em série, uma de cada vez.
- B) A execução intercalada de threads que podem acessar a mesma variável sem necessariamente ocorrer ao mesmo tempo.
- C) Concorrência significa que as threads sempre executam ao mesmo tempo, sem interrupções.
- D) Concorrência é quando cada thread deve acessar uma variável uma única vez durante sua execução.
- E) Concorrência se refere apenas a threads que não podem acessar a mesma variável simultaneamente.
✅ Resposta correta: alternativa B
Resolução passo a passo
- Concorrência, no contexto de threads, significa que várias threads estão em andamento ao mesmo tempo lógico, com suas execuções intercaladas ou sobrepostas, podendo disputar o acesso a recursos compartilhados, como uma mesma variável. Não é preciso que elas rodem fisicamente no mesmo instante, pois em um único processador o sistema operacional alterna (intercala) a execução das threads.
- Analisando as alternativas, a B descreve exatamente isso: execução intercalada de threads que podem acessar a mesma variável, sem que isso precise ocorrer simultaneamente. É por isso que surgem problemas como condições de corrida, que exigem sincronização.
- A alternativa A está errada porque descreve execução sequencial (uma thread de cada vez), que é justamente a ausência de concorrência.
- A alternativa C está errada porque concorrência não significa execução simultânea sem interrupções; ao contrário, ela envolve interrupções e alternância entre threads.
- A alternativa D está errada porque concorrência não se define pelo número de acessos a uma variável por thread; trata-se da relação entre execuções que podem se sobrepor.
- A alternativa E está errada porque inverte o conceito: a concorrência justamente se preocupa com threads que podem acessar a mesma variável, e não apenas com as que não podem.
- Conclusão: o gabarito oficial B está correto, pois é a única alternativa que descreve a concorrência como execução intercalada de threads que compartilham variáveis.
💡 Dica: Defina o conceito de concorrência em programação.
Alternativa por alternativa
O aluno confundiu concorrência com execução sequencial, entendendo que, para não haver conflito, as threads devem rodar uma após a outra.
Por que engana: Confundir concorrência com execução em série, acreditando que as threads não podem interagir entre si.
Concorrência descreve sobreposição temporal de atividades; threads alternam acesso à variável, o que pode causar condições de corrida se não houver sincronização (ex.: locks).
O aluno associou concorrência a paralelismo perfeito, imaginando threads sempre rodando simultaneamente e sem interrupções, o que ignora a alternância feita pelo escalonador.
O aluno tomou a concorrência como uma regra de quantidade de acessos por thread, confundindo o conceito com um requisito de uso da variável.
O aluno inverteu o sentido do conceito, pensando que concorrência trata apenas de threads que não conseguem acessar a mesma variável, quando o foco é justamente o acesso compartilhado.
Raio-X da questão
concorrência em threads
avaliacao
execução de threads · acesso a variáveis compartilhadas
Revisar conceitos de concorrência e threads em programação.
Confundir concorrência com execução em série, acreditando que as threads não podem interagir entre si.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Em um programa com múltiplas threads que atualizam uma mesma variável compartilhada, qual mecanismo previne condições de…
- Uma equipe dividiu um programa em várias threads para executar tarefas ao mesmo tempo. Durante os testes, duas threads…
- Em um sistema distribuído, o que significa concorrência?
- Ao implementar um autômato baseado em eventos cujo handler concorrente incrementa uma variável compartilhada 'contador'…
- Dois handlers de evento atualizam simultaneamente a variável compartilhada 'contador' sem sincronização. Qual problema…
- Para tornar um algoritmo reutilizável e seguro para execução paralela, qual prática relacionada a variáveis e efeitos…
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
