【发布时间】:2012-03-20 12:11:58
【问题描述】:
我需要创建一个线程并让它做一些事情。主要原因是尽快退出主程序。 但是在我分离线程并结束主程序后,线程就死了。在我的示例中,该文件不包含预期数据。 如果我让主程序休眠 5 秒,一切正常。
从主程序退出后如何让线程运行?
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;
}
【问题讨论】:
标签: multithreading perl asynchronous