Baixe o app para aproveitar ainda mais
Prévia do material em texto
PROGRAMAÇÃO II Lupa CCT0840__TEMAS Disc.: PROGRAMAÇÃO II 2023.3 EAD (G) / EX Prezado (a) Aluno(a), Você fará agora seu EXERCÍCIO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha. Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS. THREADS 1. (UFF - COSEAC - Analista de Tecnologia da Informação - 2015) Na linguagem Java, uma thread executável pode entrar em um determinado estado por um intervalo de tempo específico, retornando ao estado executável quando for notificada por outra thread ou quando esse intervalo expirar. Essa situação caracteriza o seguinte estado: Bloqueado Terminado Novo Cancelado Espera sincronizada Data Resp.: 13/12/2023 18:31:40 Explicação: A resposta certa é: Espera sincronizada 2. (CESGRANRIO - BNDES - Profissional Básico - Análise de Sistemas - 2013) Qual método pertencente à biblioteca nativa de Java não é capaz de bloquear a execução de uma thread? Thread.yield() ReentrantLock.lock() FileInputStream.read() Thread.join() Object.wait() Data Resp.: 13/12/2023 18:31:45 Explicação: A resposta certa é: Thread.yield() 3. (CESPE - INMETRO - Pesquisador - Ciência da Computação - 2010) Em relação ao uso de threads na linguagem Java, assinale a opção correta: O método yield é utilizado para forçar um thread a entrar no modo de suspensão. Uma classe pode definir tanto métodos quanto variáveis sincronizadas. O método join é utilizado para garantir que determinado thread não seja executado até que outro tenha entrado no estado inativo. Todo thread recebe uma prioridade padrão que é igual ao menor nível de prioridade possível. Para configurar essa prioridade, pode ser utilizado o método setPriority. Métodos static não podem ser synchronized. Data Resp.: 13/12/2023 18:31:47 Explicação: A resposta certa é: O método join é utilizado para garantir que determinado thread não seja executado até que outro tenha entrado no estado inativo. 4. (VUNESP - TJ/SP - Analista de Sistemas - 2012) Considere as seguintes afirmações sobre Threads: I. É uma forma de um processo se dividir em tarefas que podem ser executadas concorrentemente. II. Os sistemas que suportam múltiplas threads são chamados de multithread. III. Em hardwares com múltiplas CPUs (multi-core), as threads podem ser processadas de forma simultânea. Sobre as afirmações, está correto o contido em: I e II, apenas II e III, apenas I, apenas I, II e III I e III, apenas Data Resp.: 13/12/2023 18:31:53 Explicação: A resposta certa é: I, II e III 5. (CESGRANRIO - BNDES - Profissional Básico - Análise de Sistemas - 2011) Os usuários de um sistema Web, desenvolvido em Java, reclamam de erros nos dados consultados. A equipe técnica, ao analisar a situação, concluiu que determinado método M está sendo invocado, simultaneamente, por diferentes threads. Considerando que não há manipulação de locks no restante do sistema, o que pode ser feito para que M seja executado, em dado momento, somente por uma thread? Implementar connection pooling no acesso ao banco de dados. Reescrever M em Assembly, necessariamente. Ajustar o firewall de borda para permitir uma conexão por IP. Utilizar a keyword lockable no bloco de M. Declarar o método M como synchronized. Data Resp.: 13/12/2023 18:31:57 Explicação: A resposta certa é: Declarar o método M como synchronized. 6. (AOCP - BRDE - Analista de Sistemas - 2012) Sobre Prioridade e Agendamento de Thread na linguagem de programação Java, analise as afirmações e assinale 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. Apenas II, III e IV Apenas I, III e IV Apenas I I, II, III e IV Apenas II e IV Data Resp.: 13/12/2023 18:32:03 Explicação: A resposta certa é : Apenas II e IV 7. (UFJF - COPESE - Técnico de Tecnologia da Informação - 2017) Java possui suporte a definição de métodos synchronized, os quais: Habilitam o uso do relógio de tempo real no objeto, que é sincronizado com o relógio atômico e que, assim, tem mais precisão se comparado com o relógio do sistema. Habilitam o monitor de um objeto, que garante exclusão mútua entre threads que tentam executar seus métodos synchronized em um dado momento. Permitem a sincronização com outros métodos synchronized da mesma classe, de modo que possam iniciar sua execução exatamente juntos a partir de diferentes threads. Permitem monitorar sua execução para que outras ações no mesmo objeto possam ser sincronizadas para execução obrigatoriamente em paralelo. Permitem a sincronização com outros métodos synchronized da mesma e de outras classes, de modo que possam iniciar sua execução exatamente juntos a partir de diferentes threads. Data Resp.: 13/12/2023 18:32:09 Explicação: A resposta certa é: Habilitam o monitor de um objeto, que garante exclusão mútua entre threads que tentam executar seus métodos synchronized em um dado momento. 8. (COPESE - UFPI - Analista de Tecnologia da Informação - 2017) (Questão modificada) Sobre a classe thread da linguagem Java, informe se cada afirmativa a seguir é verdadeira (V) ou falsa (F). Em seguida, marque a opção que corresponde à sequência correta. ( ) A classe provê diversos métodos para controle de execução de threads, sendo o método start responsável por iniciar a execução do thread. ( ) O método sleep é utilizado para forçar um método a atrasar sua execução até que o método run de outra thread tenha completado sua execução. ( ) O método yield, que não possui parâmetros, é um pedido do thread em execução para entregar o processador voluntariamente. F - F - V V - F - V V - F - F F - V - V V - V - F Data Resp.: 13/12/2023 18:32:15 Explicação: A resposta certa é: V - F - V 9. Em Java, quando uma thread está aguardando para obter a trava de um semáforo, ela encontra-se no estado: STOPED TIMED_WAITING RUNNABLE BLOCKED WAITING Data Resp.: 13/12/2023 18:32:20 Explicação: A resposta certa é: BLOCKED 10. No que se refere à linguagem de programação Java, ''thread safe'' é um conceito segundo o qual threads concorrentes utilizam algoritmo de sincronismo para cooperarem entre si. É exemplo da aplicação desse conceito: Objetos estáticos Classes estáticas Objetos imutáveis Classes finais Objetos finais Data Resp.: 13/12/2023 18:32:23 Explicação: A resposta certa é: Objetos imutáveis Não Respondida Não Gravada Gravada image5.gif image6.gif image1.png image2.gif image3.gif image4.gif
Compartilhar