スレッドを作成して何かをする必要があります。主な理由は、メインプログラムからできるだけ早く終了することです。 しかし、スレッドを切り離してメインプログラムを終了すると、スレッドは消滅します。私の例では、ファイルには期待されるデータが含まれていません。 メインプログラムを5秒間スリープさせると、すべて正常に動作します。perlスレッドがデタッチした後に終了する
メインプログラムを終了してスレッドを実行させるにはどうすればよいですか?
use threads;
print "Starting main program\n";
my $t = threads->new(\&sub1)->detach();
print "End of main program\n";
sub sub1 {
print "started thread\n";
open (FILE, ">>./test.txt") or die($!);
print FILE localtime(time())."\n";
foreach (1..3){
print FILE "$_\n";
sleep 1;
}
close(FILE);
return 1;
}
すぐにお返事ありがとうございます。私の場合、私は何かilkeシステム( "prg_name.pl")を使わなければならないと思います。 – shipik