为什么默认情况下没有设置线程 perl使用 usethreads?

问题描述

根据INSTALL docs

在某些平台上,可以编译 perl 以支持线程。要启用此功能,请运行

```{r setup}
library(knitr)
source("analysis.R")
```

认是在没有线程支持的情况下编译。

由于线程实现非常稳定,为什么它不是认构建选项?构建选项似乎至少由 Debian 和 Alpine Linux 设置。是否有充分的理由在没有线程的情况下构建 Perl?线程化 perl 的缺点是什么?

解决方法

因为 Perl 的线程构建比非线程、非多重[2]构建慢 10%[1]


  1. 您的体验可能会有所不同。
  2. Multiplicity 在一个程序中支持解释器的多个实例。 -Dusethreads 是 {{1}} 隐含和必需的(因为每个线程都有自己的解释器)。