为什么默认情况下未设置线程化 perl(使用线程)?

How come threaded perl (with usethreads) isn't set by default?

根据INSTALL docs,

On some platforms, perl can be compiled with support for threads. To enable this, run

sh Configure -Dusethreads

The default is to compile without thread support.

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

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


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