默认情况下为啥没有设置线程化 perl(带有 usethreads)?

Posted

技术标签:

【中文标题】默认情况下为啥没有设置线程化 perl(带有 usethreads)?【英文标题】:How come threaded perl (with usethreads) isn't set by default?默认情况下为什么没有设置线程化 perl(带有 usethreads)? 【发布时间】:2021-02-19 22:16:06 【问题描述】:

根据INSTALL docs,

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

sh Configure -Dusethreads

默认是不支持线程编译。

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

【问题讨论】:

【参考方案1】:

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


    您的体验可能会有所不同。 Multiplicity 在一个程序中支持多个解释器实例。 -DMULTIPLICITY-Dusethreads 隐含和要求的(因为每个线程都有自己的解释器)。

【讨论】:

以上是关于默认情况下为啥没有设置线程化 perl(带有 usethreads)?的主要内容,如果未能解决你的问题,请参考以下文章

默认情况下,Perl 不包含 @INC 中的当前目录吗?

默认情况下,Perl 不包含 @INC 中的当前目录吗?

带有注释的 kotlin 数据类,为啥 @DateTimeFormat 注释可以在没有定位的情况下工作

css 中宽高为啥没有继承?

为啥默认情况下每个 SYCL 设备都在单独的上下文中?

为啥默认情况下每个 SYCL 设备都在单独的上下文中?