Questão nº 53
Questão de Tecnologia da Informação · FGV TRF1 2024 (nº 53)
O analista Anderson foi incumbido de introduzir o suporte a
paralelismo na aplicação Java NetTRF. Conforme documentação
do Java Development Kit usado na NetTRF, Anderson pode
implementar threads virtuais ou threads de plataforma.
Enquanto um tipo de thread é escalonado diretamente pelo
sistema operacional (SO), o outro é escalonado pelo próprio Java
runtime (JRE). Para fins de simplicidade, o analista deve escolher
apenas um tipo de thread. Na NetTRF, cada thread deve ter uma
pilha de chamadas de baixa profundidade.
Para permitir o maior número possível de threads na NetTRF,
dadas as condições, Anderson deve implementar threads:
- Avirtuais, pois as threads de plataforma não possuem pilha de chamadas própria;
- Bde plataforma, pois as threads virtuais não possuem pilha de chamadas própria;
- Cvirtuais, pois são escalonadas pelo JRE de forma a permitir um número maior de threads; (alternativa correta)
- Dde plataforma, pois são escalonadas pelo JRE de forma a permitir um número maior de threads;
- Ede plataforma, pois são escalonadas pelo SO de forma a permitir um número maior de threads.
Resposta comentada
Gabarito Alternativa C
Em Java, existem dois tipos principais de threads: as threads de plataforma, que são as threads "tradicionais" gerenciadas diretamente pelo sistema operacional, e as threads virtuais, que são threads leves gerenciadas pelo próprio Java Runtime (JRE), permitindo um número muito maior de tarefas concorrentes com menor custo.
- (A) Incorreta: Threads de plataforma possuem, sim, sua própria pilha de chamadas, que é gerenciada pelo sistema operacional. A afirmação é factualmente falsa.
- (B) Incorreta: Threads virtuais possuem pilha de chamadas, mas ela é gerenciada de forma mais eficiente pelo JRE, podendo ser de baixa profundidade e dinamicamente redimensionada. A afirmação é factualmente falsa.
- (C) Correta: As threads virtuais são escalonadas pelo JRE, não pelo sistema operacional. Essa característica, aliada à sua natureza leve e baixo consumo de memória (incluindo pilhas de chamadas de baixa profundidade), permite a criação e gerenciamento de um número significativamente maior de threads em comparação com as threads de plataforma, atendendo ao requisito de "maior número possível de threads".
- (D) Incorreta: Threads de plataforma são escalonadas pelo sistema operacional (SO), não pelo JRE. Além disso, elas não permitem um número maior de threads em comparação com as virtuais.
- (E) Incorreta: Embora as threads de plataforma sejam escalonadas pelo SO, essa característica não permite um "maior número possível de threads". Pelo contrário, devido ao seu alto custo de recursos (memória, contexto do SO), o número de threads de plataforma que podem ser criadas é limitado. Esta é a armadilha: a primeira parte da afirmação está correta (escalonadas pelo SO), mas a conclusão sobre o "maior número de threads" está errada para threads de plataforma.
Fonte: FGV TRF1 2024 Analista Judiciário - Análise de Sistemas de Informação (Caderno Tipo 1). Reproduzida para fins de estudo.