
26.10.2009, 14:36
|
|
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме: 3660186
Репутация:
905
|
|
Ну если юзать расшаренный хэш, то
Код:
#!/usr/bin/perl
use threads;
use threads::shared;
my $n : shared;
my %hash : shared = ();
#my $refhash : shared = \%hash;
$a = gets();
print $_, ' => ', $hash{$_}, "\n" for keys %hash;
sub gets {
$thr = 10;
$n = 0;
%res = ();
for(0..$thr) {
$trl[$_] = threads->create(\&gets1);
}
for(0..$thr) {
$trl[$_]->join;
}
sub gets1 {
$| = 1;
$ii = "";
while ($n < 10) {
{ lock($n);
$n++; }
$ii .= $n;
$hash{$n} = $ii;
}
}
}
|
|
|