java - 用户空间线程和内核空间线程的示例

标签 java linux multithreading

有人问我:

  • 用户空间线程系统的示例以及 内核空间线程系统。
  • native POSIX 线程库是否被视为用户空间的一部分 或内核空间。
  • 以及 Java 线程是否在用户空间中完成。

关于所有这些主题有大量信息,但这些具体问题似乎没有直接答案。我希望你能帮助我。

最佳答案

我正在使用此维基百科页面中列出的术语

(我将让您自行确定该术语是否与您的阿拉伯语类(class)相匹配。)

<小时/>

Q1: Provide examples of user-space-threaded systems and kernel-space-threaded systems.

现代 Linux 系统支持内核线程。

旧的 Linux 和旧的 Unix 系统不支持内核线程,因此如果您需要线程,则必须完全在用户空间中实现它。旧的 Java“绿色线程”模型是完全在用户空间中实现线程的一个示例。

Q2: Is Native POSIX Thread Library is considered part of user-space or kernel-space.

native POSIX 线程库 (NPTL) 实际上是一个 API。它可以通过多种方式实现。

典型的实现(例如当前的 Linux 实现)使用内核线程;即“用户空间”线程抽象与“内核空间”线程或内核管理的轻量级进程之间存在 1:1 映射。

Q3: Is Java threading is done in user-space.

现代 Java 实现中没有。第一个 JVM 实现使用用户空间线程(也称为绿色线程)。

<小时/>

请注意,对于“用户空间”和“内核”线程的真正含义以及 pthreads 和 NPTL 如何适应分类法存在争议;请参阅Is Pthread library actually a user thread solution? .

关于java - 用户空间线程和内核空间线程的示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31098466/

相关文章:

java - 如何在 Akka 中找到特定的 Actor

c - 在 Linux 上递归列出 C 中的目录

python - 如何在 PyQT 中制作实时更新的可编辑小部件

linux - Qt和虚拟串口

java - Java 中的 MariaDB 动态列集成

Java:如何将值从类/bean 传递到 servlet

java - Java 中的二次方

iOS线程循环逻辑

Ruby 多线程每个线程都很慢

java - invokeAny 是取消线程池中的所有线程还是仅取消可调用线程?