
26.10.2009, 14:10
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
С нами:
9649706
Репутация:
3338
|
|
Код:
#!/usr/bin/perl
use threads;
use threads::shared;
my $n : shared;
$a = gets();
print $_, "\n" for @$a;
#print $a . "\n";
sub gets {
$thr = 10;
$n = 0;
for(0..$thr) {
$trl[$_] = threads->create(\&gets1);
}
for(0..$thr) {
$res[$_] = $trl[$_]->join;
}
sub gets1 {
$| = 1;
$ii = "";
while ($n < 10) {
{ lock($n);
$n++; }
$ii .= $n;
$hash{$n} = $ii;
#print $ii . "\n";
}
#print $ii, "\n";
return \%hash
}
return \@res;
}
Относительно кода выше - как вернуть хеш, не так же ведь. И надо ли его шарить в мультитреде. Т.е. нужно, чтобы ключи у хеша были именно как в коде выше = $n. Только так потом можно будет идентифицировать данные
Последний раз редактировалось Pashkela; 26.10.2009 в 14:13..
|
|
|