应用程序线程和OS线程之间有什么区别?

时间:2017-09-28 11:47:52

标签: multithreading java-threads

来自http://coding-geek.com/how-databases-work/#Global_overview

流程管理器:许多数据库都有一个需要管理的流程/线程池。此外,为了获得纳秒,一些现代数据库使用自己的线程而不是操作系统线程。

应用程序线程和os线程之间有什么区别?

1 个答案:

答案 0 :(得分:0)

"应用程序线程"是M:N thread model, or hybrid threading的另一种形式。

  

M:N将一些M个应用程序线程映射到N个   内核实体,[10]或"虚拟处理器。"这是妥协   在内核级别(" 1:1")和用户级别(" N:1")之间进行线程化。在   一般来说," M:N"线程系统的实现比实现起来更复杂   内核或用户线程,因为内核和内核都有变化   用户空间代码是必需的。在M:N实现中,线程化   library负责调度可用的用户线程   可调度实体;这使得线程的上下文切换非常紧密   快,因为它避免了系统调用。 然而,这增加了复杂性   和优先级倒置的可能性,以及次优   调度之间没有广泛(和昂贵)的协调   userland调度程序和内核调度程序。

似乎总是尝试使用"应用程序线程"提高绩效。

Java做到了 - "绿色线程"。并将其放在Java 1.2周围。

Solaris曾经有一个M:N线程模型,并从Solaris 8开始删除它。

AFAIK,Windows和Linux从未去过那里。

现在,Rust seems to want to try their hand at it