Carregando...
Carregando...
Ajude a melhorar a plataforma
Com a disponibilidade de GPUs e CPUs multi-core , os aplicativos estão se tornando cada vez mais complexos à medida que os desenvolvedores aproveitam as threads para o máximo desempenho e capacidade de resposta do aplicativo. Com essa maior complexidade vem um maior grau de dificuldade ao escrever código, depurar, testar e gerenciar os aplicativos. Sendo assim, “escrever programas de múltiplas threads pode ser difícil. Embora a mente humana possa realizar funções simultaneamente, as pessoas acham difícil alternar entre linhas de pensamento paralelas. Para ver por que programas de múltiplas threads podem ser difíceis de escrever e de entender, tente a seguinte experiência: abra três livros na página 1 e tente ler os livros concorrentemente. Leia algumas palavras do primeiro livro, então algumas do segundo, então algumas do terceiro, então volte ao início e leia as próximas palavras do primeiro livro etc. Depois dessa experiência, você apreciará os desafios da tecnologia multithreading – alternar entre os livros, ler brevemente, lembrar-se de onde parou em cada livro, aproximar ainda mais o livro que está lendo para poder vê-lo melhor e afastar os que não está lendo – e, no meio de todo esse caos, tentar compreender o conteúdo dos livros” (DEITEL; DEITEL, 2016, p. 749). DEITEL, P.; DEITEL, H. Java: como programar. 10. ed. São Paulo: Pearson Education do Brasil, 2016. Avalie as afirmações a seguir, sobre os estados e as descrições relacionadas a threads em Java, e correlacione-as, adequadamente, aos termos aos quais se referem. 1. Novo 2. Executando 3. Bloqueado 4. Terminado I. Uma thread está nesse estado quando recebe tempo de CPU pela primeira vez, realizando execução e registro do processo. II. Esse estado associa-se a uma tarefa que precisa de um recurso ou tem menor prioridade que outra, não podendo ser concluída imediatamente. III. Esse estado é ativo quando o método start() é iniciado, quando recursos iniciais já foram alocados à thread . IV. Quando o método run() chega ao fim de sua execução, esse estado é chamado para a thread em questão. Assinale a alternativa que correlaciona, adequadamente, os dois grupos de informação.
Explique melhor esta questão
Abre o Tutor com o enunciado e as alternativas já no campo — você revisa e envia.
Esta questão foi verificada por um de nossos administradores.
JUSTIFICATIVA A sentença I se enquadra no conceito 1, pois uma thread que ainda não foi iniciada está nesse estado (estado novo, conforme a questão). Quando um programa na memória secundária é iniciado para execução, diz-se que o processo está em um novo estado. A sentença II se enquadra no conceito 3, pois, nesse estado, encontra-se uma thread que está em execução na CPU. Se um processo requer uma operação de entrada/saída ou um recurso bloqueado durante a execução, ele muda de execução para bloqueio ou estado de espera. O processo avança para o estado pronto depois que a operação de E/S é concluída ou o recurso fica disponível. A sentença III se enquadra no conceito 2, uma vez que uma thread bloqueada está aguardando recurso ou término de prioridade para poder retornar à espera e execução. Após ser alocada a CPU para execução, um processo passa do estado pronto para o estado executado. A sentença IV se enquadra no conceito 4, pois, como o próprio nome sugere, uma thread é finalizada, e o estado terminado é associado a ela. Quando a execução de um processo termina, ele passa do estado de execução para o estado terminado. O sistema operacional exclui o bloco de controle do processo (ou PCB) após entrar no estado de encerramento.