Conceitos Essenciais de Threads e Sockets

Classificado em Computação

Escrito em em português com um tamanho de 5,89 KB

1-Levando em consideração o conteúdo sobre Thread responda:
a.Explique pára que servem.
R: É uma unidade de programa executada independentemente de outras partes desse programa. Permite que um programa execute duas ou mais tarefas ao mesmo tempo.
b.Exemplifique e explique uma situação em que seria pertinente utilizá-las.
R: Em um ambiente web, onde se tem imagens, textos e animações tudo ao mesmo tempo.
c.Pára que serve o método run e o start de uma Thread.
R:Run- método que define o que a thread ira executar
Start- método pára iniciar uma thread
d.Pára que serve o escalonador?
R: O escalonador de threads precisa tomar decisões sobre qual deve ser executada. Ele seleciona aquela com a prioridade mais alta.
e. Qual a diferença existente entre os modelos cooperativo e preemptivo utilizado na execução de threads?
R:Cooperativo-Uma thread retem o controle da CPU até decidir liberá-lá (pode ser nunca).Programador é o grande responsável: fazer com que as threads cooperem entre si compartilhando o uso da CPU. Torná-se menos estável, uma vez que uma programação ruim pode não fazer as threads cooperarem bem.R: Preemptivo-O hardware pode vir a interromper uma tarefa em execução pela CPU, devolvendo o controle ao sistema operacional. A tarefa que sair da CPU, quando voltar, continuará a executar de onde parou.

f. Qual a importância da sincronização de threads?
R: É o esquema mais confiável pára controlar o comportamento das threads, evitando que elas entrem em conflito ao acessar o mesmo objeto.
g. Cite e explique uma situação na qual poderia ser aplicada a sincronização de thread.
R: Em uma determinada conta possui um saldo de 200 reais, 2 pessoas estão acessando esta mesma conta em diferentes locais ao mesmo tempo,a pessoa A e a pessoa B,a pessoa A esta fazendo um saqué de 100 reais e a pessoa B um depósito do mesmo valor, se não ouver sincronização de thread nesse processo a pessoa A vai visualizar ao final da óperação um saldo de 100 reais e a pessoa B um saldo de 300 reais, sendo que na verdade o saldo da conta é 200 reais.
h. Qual é o propósito de wait, notify e notifyall?
Wait-A chamada deste método dentro de um método sincronizado faz com que a thread atual espere e permita que outra thread adquira o bloqueio do objeto.

Notify- Seleciona aleatoriamente apenas uma thread que está esperando
pelo objeto e a desbloqueia.
NotifyAll- O método notifyAll deve ser chamado sempre que o estado de um objeto mudar de uma maneira que talvez beneficie as threads em éspera.

i. O que acontece quando uma thread adormecida é interrompida?
Gera-se um InterruptedException. Esta exceção deve ser capturada no método run e logo terminar a thread.

2- Numa aplicação baseada em Sockets podemos ter dois tipos de comunicação. Diga quais são e explique a diferença entre elas.
R:
Datagram sockets e Stream Sockets. No Stream sockets o fluxo de mensagens e controlado pára que caso haja algum problema nas mensagens elas possam ser corrigidas, é um serviço orientado a conexão e utiliza o protocolo tcp pára transporte. No Datagram sockets o fluxo de mensagens não é controlado, o que pode gerar perda de pacotes. É um serviço não orientado a conexão e utiliza o protocolo de transporte udp.
3- Pára o desenvolvimento de aplicações baseadas em Sockets é necessário a implementação do Socket Servidor e do Socket Cliente. Considerando os códigos abaixo, identifique quais são as instruções que devem ser implementadas no Socket Servidor e quais são as implementações do Socket Cliente-(ou ambos).
a)Socket s =new Socket (nomeDoHost, numDaPorta); ( )Servidor (X)Cliente
b)InputSream in = s.GetInputStream(); (X)Servidor (X)Cliente
c)OutputStream out = s.GetOutputStream(); (X)Servidor (X)Cliente
d)s.Close(); (X)Servidor (X)Cliente
e)ServerSocket server = new ServerSocket(8888); (X)Servidor ( )Cliente
f)Socket s = server.Accept(); (X)Servidor ( )Cliente

4- Considerando os códigos da questão 3, explique pára que serve cada um deles.
a - criar um novo socket conectado à nomeDoHost, na porta numDaPorta
b - pegar o stream pára entrada de dados pelo socket
c- pegar um stream pára Sáída de dados pelo socket
d- encerrar a comunicação
e-reservar o uso da porta 8888 com um servidor
f - aguardar uma conexão no servidor criado no código e
5- Descreva um cenário no qual os seguintes recursos e tecnologias poderiam ser utilizados em conjunto;
a.Thread
b.Socket
Pára um melhor entendimento da sua resposta fáça uma figura ilustrativa do seu cenário, demonstrando tanto o lado cliente quanto o servidor.
R:
Situaçao- A venda de passagens aéreas - teria o servidor e uma classe implementando thread pára ficar escutando as requisições, e o servidor estaria conectado ao banco de dados e buscaria as respostas. E haveria o cliente que faria as requisições ao Server pedindo, por exemplo, quantos lugares têm sobrando, qual a poltrona ou então qual o avião disponível.
Banco de Dados -Server-Thread- ßSocketà -Cliente(ESSE É PRA SER O DESENHO)

Entradas relacionadas: