Sobre Prioridade e Agendamento de Thread na linguagem...

Próximas questões
Com base no mesmo assunto
Q234345 Programação
Sobre Prioridade e Agendamento de Thread na linguagem de programação Java, analise as assertivas e assinale a alternativa que aponta a(s) correta(s).

I. Por padrão, toda thread recebe uma DEFAULT_PRIORITY (uma constante de 5).

II. Toda Thread do Java tem uma prioridade de thread que, auxilia na ordenação em que estão agendadas.

III. O agendamento de Thread consegue garantir que em diferentes Sistemas operacionais, cada processo gastará a mesma fatia de tempo.

IV. Em Java, cada nova Thread herda a prioridade da Thread que a cria.
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: B - Apenas II e IV.

Para entender o porquê da alternativa B ser a correta, vamos discutir cada uma das assertivas separadamente com foco no agendamento e prioridade de Threads na linguagem de programação Java.

A assertiva I afirma que por padrão toda thread recebe uma DEFAULT_PRIORITY que é uma constante de 5. Isso está correto, pois no Java, toda thread quando criada, recebe essa prioridade padrão a menos que seja explicitamente alterada pelo programador.

A assertiva II menciona que cada Thread do Java tem uma prioridade que auxilia na ordenação em que elas estão agendadas para execução. Isso é verdade, a prioridade é um dos fatores que o agendador de threads (scheduler) utiliza para decidir qual thread deve ser executada em um dado momento, embora a decisão final também dependa da implementação específica do agendador do sistema operacional.

A assertiva III sugere que o agendamento de Thread pode garantir que, em diferentes sistemas operacionais, cada processo gastará a mesma fatia de tempo. Isso não é verdadeiro, pois a maneira como as threads são agendadas para execução pode variar significativamente entre diferentes sistemas operacionais e também depende de como o Java Virtual Machine (JVM) interage com esses sistemas. Portanto, não há garantia de que as threads terão o mesmo tempo de processamento em sistemas operacionais distintos.

Por fim, a assertiva IV afirma que em Java, cada nova Thread herda a prioridade da Thread que a cria. Isso é verdade, a prioridade de uma nova thread é a mesma que a da thread que a criou, a menos que seja explicitamente modificada.

Com base nessa análise, a alternativa correta é a B, que inclui apenas as assertivas II e IV como corretas.

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

Alternativa B.
I. ERRADA. Pra começar, não existe DEFAULT_PRIORITY, apenas NORM_PRIORITY (que é uma constante de valor 5). Segundo, as prioridades são herdadas das classes que as criam.
III. ERRADA. O agendamento de threads garante que cada processo gastará uma fatia de tempo proporcional a sua prioridade.
Fonte: http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html
III) As Threads trabalham com prioridades. Porém, se todas as prioridades forem iguais, a implementação do agendador que a JVM usar poderá fazer simplemente o que quiser. Isso significa que o agendador pode executar uma das seguintes ações:
a) selecionar a execução de uma thread mantendo-a até que seja bloqueada ou conclua seu método run() ou
b) dividir o tempo das threads do pool para dar a todos uma oportunidade igual de execução.

Livro de certificação - Java 6 - Sierra e Bates pg 407

quem aí tá resolvendo essa questão em 2020 :D

Clique para visualizar este comentário

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