[SP-pm] threads

Jorge Teles jorteles em yahoo.com
Quarta Maio 3 10:06:32 PDT 2006


Olá pessoal,

Estou començando uns estudos em threads em perl:
http://migo.sixbit.org/papers/Perl_Threads/slide-index.html

use threads;
use Thread::Queue;

my $stream = new Thread::Queue;
my $kid    = new threads(\&check_num, $stream, 2);

for my $i (3 .. 1000) {
	$stream->enqueue($i);
}

$stream->enqueue(undef);
$kid->join;

sub check_num {
	my ($upstream, $cur_prime) = @_;
	my $kid = undef;
	my $downstream = new Thread::Queue;
	while (my $num = $upstream->dequeue) {
		next unless $num % $cur_prime;
		if ($kid) {
			$downstream->enqueue($num);
		} else {
			print "Found prime $num\n";
			$kid = new threads(\&check_num, $downstream, $num);
		}
	}
	$downstream->enqueue(undef) if $kid;
	$kid->join if $kid;
}

Nesta página tem um exemplo de cálculo de números
primos, mas há uma coisa que não entendi no exemplo,
talvez porque esteja faltando algum conceito.
Eu não entendi muito bem o que acontece na funçao, na
parte em que ele inicializa novamente a thread com a
mesma variável, alguém poderia dar um help.

Até...



__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 


Mais detalhes sobre a lista de discussão SaoPaulo-pm