私の疑似コードは次のようになります。
#!/usr/local/bin/perl5.8.8
use warnings;
use strict;
use threads;
use threads::shared;
sub tasker;
my @allThreads = ();
my @array = ('alpha','beta','gamma');
push @allThreads, threads->new(\&tasker, @array);
$_->join foreach @allThreads;
sub tasker{
my @localArray = @_;
...call some other modules/functions...
}
スレッドの実行中、STDOUT で数秒後に次のメッセージが表示されます。
Still here!
Still here!
Still here!
その後、スレッドは正常に参加 (完了) します。これらがどこから来ているのか、なぜ一部の @array にしか表示されないのかはわかりません。言及すべきポイントは、これらのメッセージの数が @array の要素と等しいということです。
専門家からの助けに感謝します。