Com a disponibilidade de GPUs e CPUs multi-core , os aplicativos estão se tornando cada vez mais complexos à medida que os desenvolvedores aproveitam ...
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.