perl线程与内核线程具有相同的优势吗?

时间:2010-03-19 22:20:27

标签: perl multithreading

内核线程在内核级别而不是进程级别执行上下文切换。

我打算在perl中设置一个httpserver。我想从上下文切换的角度来了解perl线程是否与内核线程具有相同的优势。

2 个答案:

答案 0 :(得分:3)

我有理由相信,如果你正在尝试编写一个高性能服务器,那么Perl就不是那种方式 - 线程或没有线程(Perl线程很糟糕,但这是无关紧要的。)< / p>

上下文切换不是为什么内核模式的东西“更有效” - 而是因为它们没有系统调用开销。话虽如此,这些低级别优化的好处是非常非常有利的。如果您的应用程序对性能至关重要以至于需要进行这些优化,那么您可能只需更便宜地向其投入更多计算机(这当然是管理层的决定)。编写内核代码容易出错(即错误崩溃或破坏内核)并且难以维护,因为需要针对每个新内核版本进行更新。

答案 1 :(得分:1)

/ usr / bin / perl是一个userland应用程序,因此不使用内核线程 - 因此,它将处于进程级别,而不是内核级别。内核线程使用的唯一时间是内核代码 - 其他所有内容都在userland中。因此,如果您没有编写内核模块或在内核源代码树上编写C语言,那么您就处于用户区。