我正在尝试使用分离方法运行带有线程的 perl 脚本。该应用程序应该永久运行,24/7。我正在尝试使用这个例子。
但是当我在更长的时间段内运行这个例子时,发现内存在不断增加。我怎样才能避免这种情况?如何在threads->detach
不增加内存的情况下使用该方法?
我正在尝试使用分离方法运行带有线程的 perl 脚本。该应用程序应该永久运行,24/7。我正在尝试使用这个例子。
但是当我在更长的时间段内运行这个例子时,发现内存在不断增加。我怎样才能避免这种情况?如何在threads->detach
不增加内存的情况下使用该方法?
另一种方法可能是使用Parallel::ForkManager模块(一个简单的并行处理分支管理器)。我已经使用它并且完成了我的工作(长时间运行的进程没有内存泄漏)。
您可以发布您的代码或您要分离的内容吗?
你不需要使用 pool.pl 来运行一个分离的程序。
你能做的最简单的就是
use threads;
use threads::shared; # if required,
###loop main prog
my $detach_thread = threads->create(
sub {
# DO YOUR STUFF here
return;
}
);
$detach_thread->detach();
其他要考虑的替代方案是在后台运行(在 unix 中:)yourcommand &
。