Estou estudando Threads (para a certificação, mas nunca trabalhei como isso)… Gostaria muito de saber situações que o uso de Thread fosse
digamos imprescindível… E mesmo assim não poderia usar outra maneira tipo criando uma lógica maluca lá usando métodos normais do Java? Posso usar
Threads no ambiente web que é meu foco ou só Desktop?
Por qual situação eu deveria usar Threads?
14 Respostas
Oi,
Utiliza-se Thread para rodar um processo em paralelo a sua execução. Ou melhor, permitem múltiplas atividades dentro de um único processo.
Porque utilizar :?:
:arrow: Responsividade em Interfaces Gráficas: imagine se o seu navegador web parasse de carregar uma página só porque você clicou no menu arquivo?;
:arrow: Sistemas multiprocessados: o uso de threads permite que o SO consiga dividir as tarefas entre todos os processadores disponíveis aumentando, assim, a eficiência do processo;
:arrow: Simplificação na Modelagem de Aplicações: suponha que você precise fazer um programa que simule a interação entre diferentes entidades.
Carros em uma estrada, por exemplo. É mais fácil fazer um loop que atualiza todos os carros da simulação ou criar um objeto carro que anda sempre que tiver espaço a frente dele?
@Informações supracitadas foram encontradas na internet, em algum determinado tempo e espaço.
Um outro exemplo seria a comunicação Socket, contendo as funções SEND e RECEIVE. No qual a função RECEIVE seria uma thread esperando sempre um pacote de “retorno”.
Tchauzin!
Olá Amigo,
Na revista mundo Java na edição 41 tem um ótimo artigo sobre Thread e concorrência [Produtor/ Consumidor utilizando Thread].
Espero ter ajudado,
Abraços
Não é recomendado que você use Threads no ambiente web, porque se você for usar, pode cair fora do controle do contêiner (por exemplo: se você esquece de declarar uma thread como daemon e quiser encerrar o servidor, vai ter que ficar esperando a thread que você criou encerrar o processamento).
No entanto, você precisa saber que elas existem e como funcionam, já que, tipicamente, cada requisição de um usuário é uma thread criada no servidor. Assim, vale dizer que, por exemplo, métodos sincronizados em classes compartilhadas são PÉSSIMA idéia num ambiente web.
[]´s
Eu já usei threads para atualizar uma base de dados de hora em hora…e era em um sistema web(hoje existe soluções melhores para esse tipo de tarefa por exemplo usando quartz).
A cada uma hora buscava os novos registros em um banco de dados e trazia registros novos para o banco de dados que minha aplicação utilizava.
Bom, uma vez me disseram que o Tomcat faz o trabalho da Thread… Pode me explicar melhor? Então, eu nunca devo usar Thread pra web?
Voce dificilmente precisara de um processo em paralelo em ambiente web, a parte das threads que o container faz é abrir uma thread para cada sessão de usuario e trata-los de forma distintas.
Olá
Para entender bem threads, eu sugiro um livro de Sistemas Operacionais como o do Tanenbaum que com certeza tem na biblioteca de sua faculdade.
Oi,
"Coisas que vc vai aprender:
- A lidar com pessoas
- Entender partes sistemas complexos e mal-escritos em algumas horas
- Técnicas avançadas de depuração
- Que praticamente todos os sistemas por onde passa algum dinheiro funcionam por um quase-milagre
- Que quase ninguém que usa Threads sabe o que ta fazendo - Que ninguém que compra soluções IBM sabe o que ta fazendo
- A respeitar a Primeira Lei (http://martinfowler.com/bliki/FirstLaw.html)
- A chegar no horário (!)
- A questionar pessoas de forma mais eficiente"
Tchauzin!
Oi,"Coisas que vc vai aprender:
- A lidar com pessoas
- Entender partes sistemas complexos e mal-escritos em algumas horas
- Técnicas avançadas de depuração
- Que praticamente todos os sistemas por onde passa algum dinheiro funcionam por um quase-milagre
- Que quase ninguém que usa Threads sabe o que ta fazendo- Que ninguém que compra soluções IBM sabe o que ta fazendo
- A respeitar a Primeira Lei (http://martinfowler.com/bliki/FirstLaw.html)
- A chegar no horário (!)
- A questionar pessoas de forma mais eficiente"
Tchauzin!
Hahahah!! Eu tenho o livro que o Fowler cita, é muito bom. De fato, de Patterns de Integração, mesmo, não tem quase nenhum alí. Isso porque ele quer passar a mensagem do quanto sistemas distribuídos podem ser ruins. Mas, bem, sou suspeito pra falar 
[]´s
Hehehehehe… realmente tive que aprender tudo isso, só não aprendi ainda a chegar no horario. 
Mas realmente, quase ninguém que usa Threads sabe o que esta fazendo.
Hahaha, Prefiro o post da Lina.
Mas sem dúvida que chegar na hora é um ponto fundamental =)
Eu também, só estou concordando com ela 
Lina PWNED!! =D
hehehe… Oi lina, td bom? Acho vc super divertida, ao passo que ajuda e muito faz umas analogias hilárias…
abraços,
André AS 