Um analista de sistemas está projetando a aplicação web Jus...

Próximas questões
Com base no mesmo assunto
Q3874362 Programação
Um analista de sistemas está projetando a aplicação web JustiçaÁgil. A JustiçaÁgil deve ser uma aplicação Java de alta performance, apta a processar um grande volume de requisições de usuários em tempo real. A fim de otimizar a utilização dos recursos do servidor, o analista decidiu implementar o paralelismo na JustiçaÁgil com o uso tanto de threads virtuais do Java quanto de threads de plataforma. Sobre a implementação de paralelismo na JustiçaÁgil, é correto afirmar que: 
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: C

Fundamento decisivo: O decisivo era que virtual threads são agendadas pelo runtime sobre platform threads subjacentes, sem relação 1:1 permanente.

Tema central: Threads virtuais no Java
Análise das alternativas
A
Errada
Está errada porque virtual thread não é mecanismo de isolamento de falhas. Ela é um tipo de java.lang.Thread, e o modelo de virtual threads não garante, por si só, que falhas em uma thread não afetem o restante da aplicação.
B
Errada
Está errada porque pressupõe correspondência 1:1 entre virtual thread e platform thread. A base afirma exatamente o contrário: virtual threads compartilham carrier threads, sem relação permanente exclusiva com uma platform thread.
C
Certa
A alternativa C está certa porque virtual threads compartilham platform threads subjacentes, chamadas carrier threads, permitindo que poucas platform threads suportem muitas virtual threads.
D
Errada
Está errada porque transforma a quantidade de platform threads em limite máximo rígido de virtual threads, independentemente da carga. Isso contraria o modelo de agendamento pelo runtime, no qual a escalabilidade das virtual threads não é definida de forma simples apenas pela contagem de platform threads.
E
Errada
Está errada porque inverte a relação de suporte entre os tipos de thread. Platform threads servem de carrier para virtual threads; não é o número de virtual threads que determina o máximo de platform threads instanciáveis.
Pegadinha da questão
A confusão explorada foi tratar virtual thread como se fosse uma platform thread dedicada ou como se houvesse relação numérica rígida entre as duas.
Dica para questões semelhantes
  • Se a alternativa assumir relação 1:1 entre virtual thread e platform thread, desconfie: a base correta é a multiplexação sobre carrier threads.
  • Se a alternativa atribuir isolamento de falhas a virtual thread, elimine, porque virtual thread não é sandbox nem mecanismo próprio de contenção.
  • Se a alternativa disser que a quantidade de um tipo fixa automaticamente o máximo do outro, independentemente da carga, confronte com o agendamento feito pelo runtime.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Os Virtual Threads introduzidos no projeto Project Loom (disponíveis nas versões recentes do Java) foram criados para permitir alta escalabilidade com baixo consumo de recursos.

Como funciona?

  • Threads virtuais são gerenciadas pela JVM.
  • Elas são multiplexadas sobre um conjunto menor de threads de plataforma (threads do sistema operacional).
  • Assim, milhares ou até milhões de threads virtuais podem compartilhar poucos threads reais do SO.

Isso reduz:

  • consumo de memória;
  • custo de criação de threads;
  • overhead de troca de contexto.

Análise das alternativas

  • A) Incorreta. Não existe isolamento completo de falhas apenas por serem threads virtuais.
  • B) Incorreta. Não há equivalência 1:1 entre thread virtual e thread de plataforma.
  • C) Correta.
  • D) Incorreta. O número de threads virtuais não fica rigidamente limitado ao número de threads de plataforma.
  • E) Incorreta. A relação está invertida.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo