Показать сообщение отдельно

  #11  
Старый 26.10.2009, 14:10
Pashkela
Динозавр
Регистрация: 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..
 
Ответить с цитированием