Java中的线程模型与线程调度是如何协同工作的?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2158个文字,预计阅读时间需要9分钟。
JAVA线程模型及其实现方式主要有三种:
1.使用内核线程实现(1:1)
2.使用用户线程实现(1:N)
3.使用用户线程加轻量级进程实现(N:M)
内核级线程(Kernel-Level Thread,KLT)实现(1:1):每个用户线程直接映射到一个内核线程。这种方式效率高,但系统资源消耗大。
内
JAVA线程模型
线程的实现主要有3种方式:
- 使用内核线程实现(1:1)
- 使用用户线程实现(1:N)
- 使用用户线程加轻量级进程实现(N:M)
使用内核线程实现(Kernel-Level Thread, KLT)(1:1)
内核线程就是直接由操作系统内核支持的线程,这种线程由内核来完成线程的切换,内核通过操作调度器对线程进行调度,并负责将线程的任务映射到各个处理器上。
程序一般不会直接去使用内核,而是去使用线程的一种高级接口——轻量级进程(Light Weight Process,LWP),轻量级进程就是我们通常意义上的线程,由于每个轻量级进程都是由一个内核线程支持的,因此只有先支持内核线程,才能有轻量级进程。这种轻量级进程与内核线程直接1:1的关系称为一对一线程模型。
本文共计2158个文字,预计阅读时间需要9分钟。
JAVA线程模型及其实现方式主要有三种:
1.使用内核线程实现(1:1)
2.使用用户线程实现(1:N)
3.使用用户线程加轻量级进程实现(N:M)
内核级线程(Kernel-Level Thread,KLT)实现(1:1):每个用户线程直接映射到一个内核线程。这种方式效率高,但系统资源消耗大。
内
JAVA线程模型
线程的实现主要有3种方式:
- 使用内核线程实现(1:1)
- 使用用户线程实现(1:N)
- 使用用户线程加轻量级进程实现(N:M)
使用内核线程实现(Kernel-Level Thread, KLT)(1:1)
内核线程就是直接由操作系统内核支持的线程,这种线程由内核来完成线程的切换,内核通过操作调度器对线程进行调度,并负责将线程的任务映射到各个处理器上。
程序一般不会直接去使用内核,而是去使用线程的一种高级接口——轻量级进程(Light Weight Process,LWP),轻量级进程就是我们通常意义上的线程,由于每个轻量级进程都是由一个内核线程支持的,因此只有先支持内核线程,才能有轻量级进程。这种轻量级进程与内核线程直接1:1的关系称为一对一线程模型。

