安全的perl线程

时间:2013-02-25 20:22:17

标签: multithreading perl memory-management

我正在尝试使用detach方法运行带有线程的perl脚本。应用程序 应该是24/7全天候运行。我正在尝试使用this example

但是当我在更长的时间内运行这个例子时,事实证明存在一个常数 增加记忆力。我怎么能避免这个?如何在不增加内存的情况下使用threads->detach方法?

2 个答案:

答案 0 :(得分:1)

另一种方法可能是使用Parallel::ForkManager模块(一个简单的并行处理fork管理器)。我已经使用它了,我完成了我的工作(长时间运行的进程没有内存泄漏)。

答案 1 :(得分:0)

您可以发布您的代码或您要分离的内容吗?

你不需要使用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 &)。