使用perl完全处理能力

fir*_*r3x 3 perl multithreading

我有一个运行正确的perl脚本,但它只使用了我的2核CPU的1核,我怎样才能利用所有核心.

我知道我可以使用threads-> new()创建线程.但我如何适应这样的事情:

my $twig= new XML::Twig::XPath(TwigRoots => {TrdCaptRpt => \&top_level});
$twig->parsefile($file);
Run Code Online (Sandbox Code Playgroud)

子程序被其他东西调用的地方.

bti*_*lly 6

Perl的标准方法是不要尝试在一次调用脚本时使用多个内核,而是在不同的内核上并行运行作业.

是的,您可以在Perl中使用线程,但Perl的线程是(非常)重量级的.为了避免潜在的竞争条件,当您生成一个线程Perl时,只需复制它不想显式共享的所有内容.因此,使用线程可能会慢得多.

  • @ eric-strom:有些情况你说的是真的.但他们更多的是例外而不是规则.在那些情况下,我倾向于使用除Perl之外的语言. (2认同)