Este é um post disponível para assinantes MVPou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Artigo Clube Delphi 54 - Threads e Conexões
Artigo da Revista Clube Delphi Edição 54
Você não gostou da qualidade deste conteúdo?
(opcional) Você gostaria de comentar o que não lhe agradou?

![]()
Threads e Conexões
Um gerenciador de múltiplas requisições
Você já precisou de uma ferramenta que baixasse várias páginas ao mesmo tempo e que mantivesse uma fila de requisições? Pela primeira vez, ainda na faculdade, criei um programa que se chamava “Rouba Site”, mas por bom senso de meu professor, o programa foi renomeado para “Baixa Site”. Basicamente, a tarefa da aplicação era salvar um site inteiro na máquina local. Para fazê-lo senti a necessidade de um gerenciador que abrisse várias conexões simultâneas e independentes, como os browsers fazem, visto que o tempo de resposta de uma conexão HTTP pode levar alguns segundos.
O gerenciador me acompanha desde então e se mostrou útil em inúmeras outras aplicações como o “robô” utilizado no site www.buscacifras.com.br, que varre e indexa periodicamente outros sites. Após algumas mudanças em sua arquitetura, as classes que utilizei, hoje podem ser herdadas para implementar qualquer tipo de fila de requisições.
Executando tarefas em paralelo
Quando se pensa em tarefas executadas em paralelo, logo vem à cabeça o uso de threads (processo executado juntamente ao programa principal). Junto com esse pensamento vem uma grande insegurança. Afinal o uso de threads foge um pouco do convencional e pode dificultar o entendimento e manutenção de um programa quando comparado a um programa linear.
Mas a utilização de threads é mais simples do que parece. São necessários somente alguns cuidados, e quando bem implementado, o seu uso traz algumas vantagens como: evitar que o processo principal “trave”, organizar o comportamento do programa, priorizar processos e multiprocessamento (para computadores com mais de um processador).
Vamos primeiro aos cuidados. Apesar de não haver limite para o número de threads simultâneos disparados por um processo, o uso em demasia pode não acelerar e sim retardar um processo. No Windows, principalmente nas versões anteriores ao 2000, você pode ficar com threads “fantasmas” se abusar do uso deles. A definição desse número depende de vários aspectos como: processador, sistema operacional ou conexão à Internet. Seja cauteloso, principalmente se a aplicação vai ser distribuída comercialmente e vai rodar em uma máquina que você não conhece.
Outro cuidado que deve ser tomado é no acesso à variáveis, propriedades e objetos. Use variáveis locais ou privadas para o seu thread. Crie funções especiais para o acesso de outros processos a propriedades do seu thread, não expondo assim as suas variáveis.
Mas a boa notícia é que o Delphi nos dá todo o suporte necessário à criação de threads, seja no Windows ou no Linux. Basta seguir algumas regrinhas e você se sairá muito bem.
Threads no Delphi
A implementação de threads no Delphi é simples e trivial. Existe uma classe chamada TThread. Para criar um thread basta herdar dessa classe e implementar o método abstrato "
Este é um post disponível para assinantes MVPou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Bruno Marotta
é programador e desenvolvedor certificado Delphi 7. Trabalha com Delphi há 9 anos, foi o analista responsável nos softwares Enciclopédia Barsa CD, Dicionário Webster’s Internet e WebLyrics entre outros e é sócio gerente da empresa Musital.



