Sobre Prioridade e Agendamento de Thread na linguagem...
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.
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
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
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