Threads e SocketsMaurício Linhares –mauricio.linhares@gmail.com
SocketsMeio 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);
Sockets clientesSã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;
Sockets servidoresFuncionam 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;
Threads e programação concorrentePoder 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;
Threads –oldstylePegue um recurso específico;Crie barreiras de acesso pra ele (synchronized);Faça N threads utilizarem esse recurso;
Threads – new stylePegue 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;
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;
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;
Criando um par cliente/servidor de chat em JavaUsando sockets, threads, XML, arquivos...

Aulas de Java Avançado 2- Faculdade iDez 2010

  • 1.
    Threads e SocketsMaurícioLinhares –mauricio.linhares@gmail.com
  • 2.
    SocketsMeio pelo qualaplicaçõ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 clientesSão criadosatravé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 servidoresFuncionam abrindouma 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çãoconcorrentePoder 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 –oldstylePegue umrecurso específico;Crie barreiras de acesso pra ele (synchronized);Faça N threads utilizarem esse recurso;
  • 7.
    Threads – newstylePegue 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 usarthreads?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 parcliente/servidor de chat em JavaUsando sockets, threads, XML, arquivos...