Questões Informática Linguagens
Quanto aos escalonamentos de threads em Java, considere: I. Em sistemas que ...
Responda: Quanto aos escalonamentos de threads em Java, considere: I. Em sistemas que aceitam preempção, uma thread executando em uma CPU também pode ser interrompida por uma thread de prioridade ...
💬 Comentários
Confira os comentários sobre esta questão.

Por Sumaia Santana em 31/12/1969 21:00:00
Gabarito: Alternativa D
I. “Em sistemas que aceitam preempção, uma thread executando em uma CPU também pode ser interrompida por uma thread de prioridade mais alta.”
Correta - Nos sistemas preemptivos, o escalonador do sistema operacional pode interromper (preemptar) uma thread em execução para dar prioridade a outra com maior prioridade.
Em Java, o gerenciamento de threads depende do escalonador da JVM e do sistema operacional, que geralmente são preemptivos e baseados em prioridades.
II. “Chamando o método run(), uma thread sugere que deseja abrir mão do controle da CPU, permitindo que outra thread tenha a oportunidade de ser executada.”
Errada - O método run() não inicia nem cede controle de CPU. Ele executa o código da thread como um método comum, dentro do mesmo fluxo de execução. O correto seria usar start() para iniciar uma nova thread, ou yield() para sugerir que o processador passe para outra thread.
III. “Para que todas as threads tenham uma quantidade igual de tempo de CPU em um sistema que não realiza a repartição de tempo, uma thread pode abandonar o controle da CPU com o método yield().”
Correta - O método Thread.yield() sugere ao escalonador que a thread atual está disposta a ceder o processador temporariamente, permitindo que outras threads do mesmo nível de prioridade sejam executadas. Isso pode ajudar a equalizar o uso da CPU entre threads, embora não garanta comportamento determinístico.
I. “Em sistemas que aceitam preempção, uma thread executando em uma CPU também pode ser interrompida por uma thread de prioridade mais alta.”
Correta - Nos sistemas preemptivos, o escalonador do sistema operacional pode interromper (preemptar) uma thread em execução para dar prioridade a outra com maior prioridade.
Em Java, o gerenciamento de threads depende do escalonador da JVM e do sistema operacional, que geralmente são preemptivos e baseados em prioridades.
II. “Chamando o método run(), uma thread sugere que deseja abrir mão do controle da CPU, permitindo que outra thread tenha a oportunidade de ser executada.”
Errada - O método run() não inicia nem cede controle de CPU. Ele executa o código da thread como um método comum, dentro do mesmo fluxo de execução. O correto seria usar start() para iniciar uma nova thread, ou yield() para sugerir que o processador passe para outra thread.
III. “Para que todas as threads tenham uma quantidade igual de tempo de CPU em um sistema que não realiza a repartição de tempo, uma thread pode abandonar o controle da CPU com o método yield().”
Correta - O método Thread.yield() sugere ao escalonador que a thread atual está disposta a ceder o processador temporariamente, permitindo que outras threads do mesmo nível de prioridade sejam executadas. Isso pode ajudar a equalizar o uso da CPU entre threads, embora não garanta comportamento determinístico.
⚠️ Clique para ver os comentários
Visualize os comentários desta questão clicando no botão abaixo
Ver comentários