gpt4 book ai didi

java - 内核支持的线程是否运行在内核态?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:13:13 24 4
gpt4 key购买 nike

我对内核空间、用户空间、内核线程、用户线程有点困惑。是否可以认为内核线程是在内核空间运行的,内核是支持的?

Java,

`Thread t = new Thread(new Runnable...)`,

这个名为't'的线程在Linux中被称为轻量级进程(内核线程)。是否运行在内核态?

最佳答案

需要澄清一些基本的操作系统概念:

  • 内核线程是操作系统内核直接管理和调度的线程实体。用户级程序可以通过系统调用访问内核线程,例如通过 pthread API。如果用户程序将其代码执行与内核线程绑定(bind),那么它就是映射到内核线程的用户线程。
  • 轻量级进程不是一个明确定义的术语,但它通常是指暴露给用户空间的内核线程,与比线程更重的普通进程形成对比。从这个意义上讲,您可以认为内核线程与轻量级进程相同。
  • Java 线程是通常由内核线程支持的用户线程实体(或者您可以将其称为轻量级进程)。这意味着,Java 线程的执行可以直接由操作系统内核进行调度。

因此,Java 线程映射到内核线程是正确的,但 Java 线程不在内核空间中运行。它由OS内核直接调度,在内核空间肯定有内核线程数据。有时用户线程可能在内核空间中运行,当它调用系统调用时...

关于java - 内核支持的线程是否运行在内核态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58365954/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com