java线程是用户级线程仍是内核级线程?

思考来自于汤子瀛的操做系统第四版,79页,我以为结合java虚拟机里面的线程共有区域的模型,一开始我推测是用户级线程,也就是进程对外获取资源,内部分线程共有区和线程私有区等等..java

可是我忽然想到了一个特性,就是众所周知,java线程的切换并不稳定,也就是同一优先级的线程并发,没法控制每一个线程的执行次数.若是是java本身控制的用户线程,那么为何不能控制线程切换呢?所以我以为是cpu负责调度的,一切按cpu的时钟来的.数据结构

因而我翻到了82页的"内核控制线程"是对java线程的描述.并发

内核控制线程:又称轻型进程lwp(light weight process)操作系统

每个进程能够拥有多个lwp,同用户级线程同样,每一个lwp都有本身的数据结构如tcb(thread control block),lwp能够共享进程全部的资源。lwp不可能很大,是做为缓冲池。当用户级线程不须要与内核通讯,便不须要与lwp链接线程