domingo, 20 de maio de 2007

Threads e Eventos para calcular se um número é primo

Segue um pequeno programa que fiz para experimentar o uso Threads e Eventos do módulo threading de Python. A minha idéia foi definir um evento que pode estar ativo ou não e que controla o início e o término do processamento de cada Thread.

Ao dividir o trabalho de calcular se um número é primo em várias linhas de controle (Threads), teoricamente seria possível melhorar o tempo de processamento. Porém como essa aplicação é CPU bound , e como um processo do interpretador Python não permite que suas Threads executem de forma simultânea, cada qual em uma CPU ou núcleo físico, na prática esse exemplo acaba não sendo muito útil para esse caso, a não ser como prova de conceito.

Se a aplicação trabalhasse com o uso de entrada e saída, ou seja, IO bound, então já seria mais interessante, pois enquanto uma Thread poderia estar bloqueada fazendo a leitura ou gravação em um disco, enviando ou recebendo dados via rede ou esperando o resultado de uma consulta no banco de dados, as outras Threads poderiam estar executando, ocupando mais a CPU e consequentemente diminuindo o tempo total de execução do programa.

Segue link para acesso ao código, já que não consegui manter a formatação usando o editor do blogspot ou mesmo carregando o fonte do HTML gerado pelo Scite. :-(

3 comentários:

Anônimo disse...

Há um modo de programar em python usando uma ide simples como a do visual basic?

Neo Soteropaulistano disse...

Você quer dizer usando uma IDE para desenhar interfaces gráficas (GUI) e programar?

A resposta é sim! Algumas ferramentas que possuem essa integração que eu conheço:

- Boa Constructor
- KDevelop usando PyQT

Além disso existem ferramentas para desenhar telas que não são integradas, mas que atendem bem a essa necessidade, como o Glade e o Gazpacho (GTK/Gnome).

Aqui você pode encontrar maiores informações também:

http://www.pythonbrasil.com.br/moin.cgi/IdesPython

Vindemiatrix Almuredin disse...

Olha, eu normalmente uso um site para postar meus códigos. Ele é excelente. Têm syntax highlight e contagem de linhas.

O endereço é www.pastebin.ca

Eu costumo usar ele para meus códigos agora.

Abração !!