DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da ClubeDelphi DIGITAL
ou 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

[fechar]

Você não gostou da qualidade deste conteúdo?

(opcional) Você gostaria de comentar o que não lhe agradou?

Esse artigo faz parte da revista Clube Delphi Edição 54. Clique aqui para ler todos os artigos desta edição

imagem_pdf.jpg

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 "

A exibição deste artigo foi interrompida.

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da ClubeDelphi DIGITAL
ou 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.
O que você achou deste post?

    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!
Cursos relacionados
Publicidade
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03