br-net.org

br-net.org::Home

de olho na internet

Usando threads em Perl

#!/usr/bin/perl
use threads;


Já tem algum tempo que quero brincar com threads em Perl, e hoje comecei a fazer alguns exemplos e escrever pequenos programas.

Achei bem interessante, principalmente podendo fazer mais de uma coisa ao mesmo tempo. Dependendo do tipo de programa, é possível obter uma boa melhora no desempenho utilizando threads.

Mas como já dizia Ben Parker, "grandes poderes trazem grandes responsabilidades". É preciso tomar cuidado com o acesso a data compartilhada, principalmente se mais de uma thread usa uma determinada variável.

Isso, porque durante uma leitura e escrita de uma variável, é possível que outra thread tenha alterado o valor da variável e isso causaria resultados indesejados.

$count++;

O código acima faz 3 operações: obtem o valor de $count, incrementa em 1 e salva novamente na variável. Se no tempo em que ele está incrementando o valor, outra thread tiver feito isso, ele não terá o novo valor, que será sobrescrito pelo seu (o que geralmente não é nada bom...).

Se alguém se interessa em usar threads em Perl, recomendo ler a documentação (perldoc perlthrtut), que foi o ponto de partida que usei para começar a usá-las.
Enviar Enviar para um amigo(a) | del.icio.us | rec6 | Linkk | StumbleUpon Stumble It!
O que você achou desse post?

Está bom

Não está bom
3 pessoas gostaram
0 pessoas não gostaram

Comentários:

Deixe um comentário:

 (invisível)

Mensagem:

Você pode usar as seguintes tags BBCode: [b], [i], [u].

Termos de Uso | Powered by Catalyst
Desenvolvido por Renan Rangel