Java创建的线程到底是用户级线程(ULT)还是内核级线程(KLT)

Java创建的线程到底是用户级线程(ULT)还是内核级线程(KLT)详解

1.线程的理解
(1. 线程是调度CPU最小单元,也叫轻量级进程LWP(Light weight process)
(2. 分为两种线程模型:用户级线程(ULT),内核级线程(KLT)

用户级线程(ULT):用户程序实现,不依赖操作系统核心,应用提供创建、同步、调度和管理线程函数来控制用户线程。不需要用户态/核心态切换,速度快。内核对ULT无感知,线程阻塞则进程(包括它所有的线程)阻塞
内核级线程(KLT):系统内核管理线程(KLT),内核保存线程的状态和上下文信息,线程组设不会引起进程阻塞。在多处理器系统上,多线程在多处理器上并行运行线程的创建、调度和管理由内核完成,效率要比ULT慢,比进程操作快。
在这里插入图片描述

  • 看到这里大家可以猜一下Java线程池是哪一种线程呢?
    揭晓答案之前我们来做个小实验,开整!
    创建300个java线程,代码如下:

public class ThreadTest {
    public static void main(String[] args) {


        for(int i=0 ; i <300 ;i++){
            Thread thread=new Thread(new Runnable() {
                @Override
                public void run() {
                    System.out.println(Thread.currentThread().getName() + "正在执行任务");
                    while (true){

                    }

                }
            });
            thread.start();
        }
    }
}

未开始创建java线程之前:
未开始
创建300个线程之后:
在这里插入图片描述
大家发现了什么,是不是cpu 线程涨了三百多,这就证明java线程是内核级线程(KLT)

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你相信光吗?

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值