面试记录中,有哪些细节需要注意?

更新于
2026-10-09 06:33:29
0阅读来源:SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1816个文字,预计阅读时间需要8分钟。

面试记录中,有哪些细节需要注意?

JVM线程分为用户态和内核态。运行在ring3级别时为用户态,ring0级别时为内核态。有些操作需要内核权限才能执行。存在三种用户态切换到内核态的情况:系统调用、操作系统的干预、内核态代码的执行。

JVM线程属于用户态还是内核态

当进程运行在ring3级别时为用户态,ring0级别时为内核态

有些操作需要有内核权限才能进行,那么有三种由用户态切换到内核态的情况:

  1. 系统调用:操作系统封装内核指令,统一管理硬件资源,然后向用户程序提供系统服务,用户程序进行系统调用,操作系统进行检查确保安全然后再进行相应的资源访问操作。比如malloc(),print()调用write()系统输出字符串
  2. 异常事件:当cpu正在运行用户态程序,发生不可预知的异常事件,就会转用户态,比如缺页中断。
  3. 外围设备的中断:当外围设备完成请求就会向CPU发出中断信号,此时cpu暂停下一条要执行的指令,去执行中断信号所对应的程序

相同点和不同点:都是中断,但是系统调用是主动,其他都是被动

用户态和内核态线程的映射关系

一对一(内核线程实现)

程序使用轻量级进程和内核线程产生映射

缺点:轻量级进程的数量有限制,执行效率低

多对一(用户线程实现)

优点:用户线程数量几乎无限制,执行效率高

缺点:一个用户线程阻塞,其他线程也会阻塞

多对多

UT 用户态线程 LWP 轻量级线程 KLT 内核态线程

优点:

  1. 一个用户线程的阻塞不会导致所有线程的阻塞,因为此时还有别的内核线程被调度来执行。
  2. 多对多模型对用户线程的数量没有限制。
阅读全文

本文共计1816个文字,预计阅读时间需要8分钟。

面试记录中,有哪些细节需要注意?

JVM线程分为用户态和内核态。运行在ring3级别时为用户态,ring0级别时为内核态。有些操作需要内核权限才能执行。存在三种用户态切换到内核态的情况:系统调用、操作系统的干预、内核态代码的执行。

JVM线程属于用户态还是内核态

当进程运行在ring3级别时为用户态,ring0级别时为内核态

有些操作需要有内核权限才能进行,那么有三种由用户态切换到内核态的情况:

  1. 系统调用:操作系统封装内核指令,统一管理硬件资源,然后向用户程序提供系统服务,用户程序进行系统调用,操作系统进行检查确保安全然后再进行相应的资源访问操作。比如malloc(),print()调用write()系统输出字符串
  2. 异常事件:当cpu正在运行用户态程序,发生不可预知的异常事件,就会转用户态,比如缺页中断。
  3. 外围设备的中断:当外围设备完成请求就会向CPU发出中断信号,此时cpu暂停下一条要执行的指令,去执行中断信号所对应的程序

相同点和不同点:都是中断,但是系统调用是主动,其他都是被动

用户态和内核态线程的映射关系

一对一(内核线程实现)

程序使用轻量级进程和内核线程产生映射

缺点:轻量级进程的数量有限制,执行效率低

多对一(用户线程实现)

优点:用户线程数量几乎无限制,执行效率高

缺点:一个用户线程阻塞,其他线程也会阻塞

多对多

UT 用户态线程 LWP 轻量级线程 KLT 内核态线程

优点:

  1. 一个用户线程的阻塞不会导致所有线程的阻塞,因为此时还有别的内核线程被调度来执行。
  2. 多对多模型对用户线程的数量没有限制。
阅读全文