Aulas de Java Avançado 2- Faculdade iDez 2010

Preview:

Citation preview

Threads e SocketsMaurício Linhares – mauricio.linhares@gmail.com

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);

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;

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;

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;

Threads – old style

Pegue um recurso específico;

Crie barreiras de acesso pra ele (synchronized);

Faça N threads utilizarem esse recurso;

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;

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 é sobre fazer tudo ficar mais rá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...

Recommended