• Like
Aulas de Java Avançado 2- Faculdade iDez 2010
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Aulas de Java Avançado 2- Faculdade iDez 2010

  • 1,005 views
Published

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to like this
No Downloads

Views

Total Views
1,005
On SlideShare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
12
Comments
1
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Threads e Sockets
    Maurício Linhares –mauricio.linhares@gmail.com
  • 2. Sockets
    Meio pelo qual aplicações Java acessam serviços pela rede;
    Podem ser usados para transferência de dados usando TCP ou UDP;
    É possível escrever clientes (que fazem conexões) e servidores (que aceitam conexões);
  • 3. Sockets clientes
    São criados através da classe Socket, usando um host e porta na qual o socket deve se conectar;
    São canais de comunicação bidirecional, onde o código pode escrever e ler informações ao mesmo tempo;
  • 4. Sockets servidores
    Funcionam abrindo uma porta no host onde estão executando e aceitando conexões nessa porta.
    Apenas um único servidor pode fazer o “bind” numa porta para cada placa de rede, não é possível ter vários servidores em uma única porta;
    Quando aceitam conexões, essas conexões são Sockets comuns para os clientes;
  • 5. Threads e programação concorrente
    Poder de processamento não deve aumentar no longo prazo;
    Computadores com múltiplos cores são uma necessidade real;
    Threads e programação concorrente são a saída para o uso desses recursos disponíveis;
  • 6. Threads –oldstyle
    Pegue um recurso específico;
    Crie barreiras de acesso pra ele (synchronized);
    Faça N threads utilizarem esse recurso;
  • 7. Threads – new style
    Pegue um conjunto de informações;
    Quebre elas em pedaços que falam sentido;
    Quebre cada pedaço em uma unidade de computação;
    Execute as unidades de computação e depois reúna os resultados;
  • 8. Programação concorrente...
    ...não é sobre contenção de dados;
    ...não é sobre compartilhar informações;
    ...não é sobre manter estado em objetos;
    …nãoésobrefazertudoficarmaisrápido;
  • 9. Quando não usar threads?
    Quando o seu problema não for “quebrável” em pequenos pedaços;
    Quando não for possível executar os vários pedaços de forma concorrente (eles dependem uns dos outros);
    Quando tudo o que você precisa fazer deve ser sincronizado;
  • 10. Criando um par cliente/servidor de chat em Java
    Usando sockets, threads, XML, arquivos...