Threads

Galera, poderiam me explicar pra q server threads , o que são, quando e pq usa-las?

Threads são diferentes linhas de execução num mesmo programa. É como se você disparasse um “subprograma” na sua aplicação para executar tarefinhas em paralelo.

Por exemplo, um chat, você tem a thread da interface gráfica, que fica recebendo textos do usuário, processando o enter, etc. E tem a thread da rede, que fica vigiando a conexão e colocando as mensagens na tela quando alguma chega.

aaaaaaaaahn tah! interessante. vlw pela resposta!

De nada, mais alguns usos de Thread são:

1. Simplicidade de modelagem: Quando usadas corretamente, as threads podem simplificar muito o design do seu programa. Se você usar threads com cuidado, as classes podem ser separadas de tarefas como aguardar recursos, escalonamento, I/O assíncrono, etc. Ao invés disso, elas passam a focar exclusivamente no domínio da sua aplicação.

2. Dar mais responsividade a interface gráfica: Ou seja, enquanto você faz processamento pesado numa thread separada, a interface continua reagindo a comandos do usuário, mostrando uma barra de progresso, ou dando algum tipo de indicativo de que o programa não travou;

3. Processamento em background ou assíncrono: Muito comum em servidores. Enquanto você atende a um cliente, você espera por outro e de quebra executa aquela rotina de backup quando não muita gente estiver conectada. Tudo ao mesmo tempo.

4. Explorar a capacidade de múltiplos processadores: É isso aí, quando a máquina tem mais de um processador, threads diferentes podem ser colocadas em processadores diferentes, aumentando a performance do programa. Isso não acontece quando a aplicação tem uma só thread, não importanto o número de processadores disponíveis.

Eu ainda falei que threads são como subprogramas. Mas há uma diferença. Como elas rodam no mesmo processo, elas podem compartilhar objetos, variáveis e valores. Por outro lado, uma pode interferir no processamento da outra. E é aí que entram as complicações de sincronização, que você verá quando estiver estudando oa assunto a fundo. :wink:

Jah vi q threads sao de suma importancia em java, preciso estudar afundo isso.

pode ter certeza…que eh de suma importancia!!

ViniGodoy parabéns pela explicação cara !!! Achei bem didática e é justamente esta forma inteligente de responder questões… sem complicações :wink:

Tem um provérbio muito interessante no livro de Deitel “Java como programar” 6ª edição sobre Multithreading que diz o seguinte

“Uma pessoa com um relógio sabe que horas são; uma pessoa com dois relógios nunca está segura”

Bom threads é uma ferramenta poderosa para ajudar ao nosso amigo do provérbio conseguir saber as horas e informa-las precisamente mesmo tendo 1000 relógios em suas mãos, cada um com “fuso horário” diferente de cada país :wink:

Espero que essa explicação tenha ajudado o nosso amigo erickles

gostei do proverbio… no fundo ele tem razao hehe ViniGodoy sempre manda ver ai nas respostas… ja aprendi muito com ele parabéns cara :smiley: acho q a duvida… foi tirada…

Bom, dei uma lida na apostila da caelum, e jah estou com uma abse mto boa sobre o assunto, soh preciso pratica isso no eclipse!