Baixe o app para aproveitar ainda mais
Prévia do material em texto
THREADS E CONCORRÊNCIA EM JAVA PROGRAMAÇÃO ORIENTADA A OBJETOS Lupa Calc. CCT0760_A9_202003135461_V1 Aluno: MARCIO RICARDO FERREIRA MENDES Matr.: 202003135461 Disc.: PROG. ORIENT. PROJ. 2021.1 EAD (G) / EX Prezado (a) Aluno(a), Você fará agora seu TESTE DE CONHECIMENTO! 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. 1. Na sincronização de Threads, alguns métodos são muito importantes. O método que é responsável pela liberação de uma ou mais Threads é: stop() notifyAll() start() notify() wait() Gabarito Comentado 2. Durante a execução de threads, há casos em que elas trabalham independentemente uma da outra, sem necessidade de qualquer comunicação entre elas. Threads que trabalham independentes no tempo são chamadas de: Encerradas Assíncronas Bloqueadas Síncronas Executáveis 3. Segundo o que foi apresentado na aula, qual é a motivação para a programação concorrente? Aumentar a segurança na execução de threads. Fazer com que os programas sejam mais seguros. Diminuir o compartilhamento de memória, estabilizando os threads. Diminuir o timeout dos threads nos sistemas. Tornar os programas mais rápidos, acompanhando a evolução do hardware e dos sistemas. Explicação: Trabalhar com processadores paralelos, paralelismo de memória, tudo tem levado para a execução de threads e processos concorrentes, o que torna os programas mais rápidos. 4. Baseando-se nos conceitos de thread produtor/consumidor sem sincronização, o que é uma condição de corrida? É uma situação em que 2 ou mais threads ou processos estão compartilhando dados (no momento da leitura) e o resultado final depende do tempo do escalonamento dos threads. É uma situação em que 2 ou mais threads ou processos estão compartilhando dados (lendo ou gravando) e o resultado final depende do tempo do escalonamento dos threads. É uma situação em que apenas 2 threads ou processos estão compartilhando dados (lendo ou gravando) e o resultado final depende do tempo do escalonamento dos threads. É uma situação em que 2 ou mais threads ou processos estão compartilhando dados (no momento da gravaçao) e o resultado final depende do tempo do escalonamento dos threads. É uma situação em que 2 ou mais threads ou processos estão compartilhando dados (lendo ou gravando) e o resultado final é independente do tempo do escalonamento dos threads. Explicação: É uma situação em que 2 ou mais threads ou processos estão compartilhando dados (lendo ou gravando) e o resultado final depende do tempo do escalonamento dos threads. 5. Qual a palavra chave utilizada pelo Java para informar que um determinado bloco deve estar síncrono com os demais threads? synchronized notifyall synchrono notify setsynchronized Explicação: synchronized é a palavra chave utilizada. 6. Qual a palavra reservada do Java voltada para a sincronização de threads? synchronized volatile static final implements
Compartilhar