应用程序线程和操作系统线程有什么区别?

问题描述 投票:0回答:2

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

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

应用程序线程和操作系统线程有什么区别?

multithreading java-threads
2个回答
1
投票

“应用程序线程”是 M:N 线程模型或混合线程的另一种形式。

M:N 将一些 M 个应用程序线程映射到一些 N 个应用程序线程上 内核实体,[10] 或“虚拟处理器”。这是一个妥协 内核级(“1:1”)和用户级(“N:1”)线程之间。在 一般来说,“M:N”线程系统的实现比 内核线程或用户线程,因为内核和用户线程都发生更改 需要用户空间代码。在 M:N 实现中,线程 库负责在可用的情况下调度用户线程 可调度实体;这使得线程的上下文切换非常 速度快,因为它避免了系统调用。 但是,这增加了复杂性 和优先级反转的可能性,以及次优 调度之间无需进行广泛(且昂贵)的协调 用户态调度器和内核调度器。

似乎总是有人尝试使用“应用程序线程”来提高性能。

Java做到了——“绿色线程”。在 Java 1.2 左右就放弃了它。

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

据我所知,Windows 和 Linux 从来没有去过那里。

现在,Rust 似乎想尝试一下


0
投票

我同意你的观点,谢谢,现在我有了答案,我在一些论坛上问过但没有收到答案,今天我读了你的文章,非常感谢你。这个

© www.soinside.com 2019 - 2024. All rights reserved.