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

Avançado

Utilizando Threads na Prática

Veja todos os detalhes e dicas de como e onde utilizar Threads em suas aplicações

 

O foco de nosso artigo são as Threads. Mas, o que são Threads? Veremos nesse artigo, muito além do que elas são, ou fazem, pois abordaremos a sua utilização prática. Conheceremos o conceito, analisaremos a classe TThread e criaremos um exemplo para aplicarmos a teoria. É importante, sempre que possível, abstrairmos os conceitos e funcionalidades das tecnologias, para a realidade, seja ela o desenvolvimento do nosso software, ou do software da empresa onde trabalhamos.

 

O que são Threads?

TThread é uma classe abstrata e uma classe abstrata é sempre uma superclasse que não possui instâncias. Ela define um modelo implementando métodos abstratos, ou seja, sem implementação para que possamos utilizá-lo da maneira que precisarmos. A classe TThread, possibilita a criação de Threads separadas, para utilizarmos em nossas aplicações. Simplificando, threads são similares a processos, que são executados em background, (“por trás da aplicação”). Podemos utilizar o seguinte exemplo para entendermos melhor:

- Imaginemos que precisamos abrir uma tabela para manipularmos alguns registros, mas não temos outra opção, a não ser abrir toda a tabela. Essa operação de chamar o método Open da classe TDataSet ou “setar” a propriedade Active para True, carrega todos os registros da tabela em memória. Tranqüilo? Sim se a tabela for pequena, mas imaginemos uma tabela com 1.000.000 de registros, com certeza levará um tempo para que o processador consiga ler essas informações no HD e carregá-las na memória. Esse processo também é conhecido por overhead. Enquanto o processo está em andamento nosso sistema “trava” aos olhos do usuário. Nem tente explicar para ele, que você esta executando uma operação que exige muito do processador e que, por isso, o sistema pode ficar lento por uns momentos. Com o passar do tempo, e com o constante crescimento da concorrência no mercado de trabalho, temos mais e mais tarefas para serem executadas.

É completamente inaceitável para uma empresa, depender de um software que “trava” sempre que uma tabela esta sendo aberta, ou seja, carregada para a memória. Essa é uma das situações em que as Threads nos ajudam, pois se a utilizarmos para carregar os registros em memória o sistema não vai travar e o usuário pode continuar seu trabalho, sem perceber o que esta por trás (“background”).

 

Conhecendo a classe TThread

A classe TThread é declarada na Unit Classes do Delphi. E ela possui algumas características (“métodos”) que precisam de atenção para que possamos entender perfeitamente. Vejamos algumas delas:

·         Execute: Método abstrato. Esse método é sempre sobrescrito ao “desenharmos” nossas próprias threads. É ele que efetivamente põe a thread e execução;

·          Synchronize: Responsável pelo Sincronismo, entre as thread’s que estiverem sendo executadas, incluindo as thread’s do sistema operacional;

·         Suspend: Suspende (“pausa”) temporariamente a execução;

· ...

Quer ler esse conteúdo completo? Tenha acesso completo