Perl中的安全防火方法

时间:2015-06-04 02:04:16

标签: multithreading perl exception-handling thread-safety

我需要在Perl代码中异步执行方法(非进程),但我必须确保此代码永远不会引发任何异常并停止执行主任务。

什么是异步调用方法并使任何潜在异常静默的最佳方法是否是被调用方法内部异常,无论它是否是线程异常?

在Java中我们会有这样的事情:

// my task runs here
try {
    // assyncrounous method invocation (fire and forget)
    new MyThread().start();
} catch (Throwable e) {
    // Silent any error
}
// my task continues here

1 个答案:

答案 0 :(得分:1)

如果要异步执行任意代码,则有两个选项:可以在单独的进程中运行它,也可以在单独的线程中运行它。使用单独的流程会更加健壮,但您可以使用线程。

use threads;
my $thread = async { code() };

join线程等待它完成。