文章目录
一、测试线程开销
1、正常测试
2、不创建线程
3、只创建不启动线程
4、只启动不等待执行完成
二、分析测试结果
1、启动线程分析
2、用户线程与内核线程
3、轻量级进程
4、验证 Java..., 这个操作非常耗时 ;
操作系统的空间 , 分为 用户空间 和 内核空间 ;
用户空间中 , 有多个进程 , 每个进程有多个线程 , 每个进程都有一个 线程表 , 用于保存该进程中的线程 ;
JVM...创建的线程是 内核线程 ;
执行 main 函数时 , 处于 用户态 , 一旦调用了 start() 方法启动了线程 , 此时就进入了 内核态 , 该状态切换消耗巨大 ;
2、用户线程与内核线程
系统的线程分为...用户线程 和 内核线程 ;
用户线程 : 用户线程是 用户程序实现的线程 , 并负责管理线程的 创建 , 执行 , 调度 , 同步 ;
线程阻塞时 , 进程也会阻塞 ;
( Java 没有用到用户线程..., 发现线程数增加了
10000
;
由此可见 , Java 虚拟机创建的线程是内核线程 ;
Java 虚拟机创建线程 , 依赖于系统内核 , 内核空间的内核线程 与 用户空间的 Java 线程