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
- No fim da tarde, muitos moradores do bairro usam o aplicativo da biblioteca comunitária para reservar livros, renovar…
- Compare replicação e erasure coding como estratégias de armazenamento distribuído: aponte vantagens e desvantagens de…
- Que esquema de criptografia usa um par de chaves (pública e privada) para cifrar e decifrar dados, possibilitando…
- Ao decompor um algoritmo que agrega dados de múltiplos nós em uma rede, qual subtarefa define como tratar dados…
- Qual é o objetivo principal de um algoritmo de consenso em uma rede distribuída de nós?
- Projete a arquitetura de um sistema distribuído para um aplicativo de anotações que permite edição offline em vários…
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
