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

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

但是我突然想到了一个特性,就是众所周知,java线程的切换并不稳定,也就是同一优先级的线程并发,无法控制每个线程的执行次数.如果是java自己控制的用户线程,那么为什么不能控制线程切换呢?因此我觉得是cpu负责调度的,一切按cpu的时钟来的.

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

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

每一个进程可以拥有多个lwp,同用户级线程一样,每个lwp都有自己的数据结构如tcb(thread control block),lwp可以共享进程所有的资源。lwp不可能很大,是作为缓冲池。当用户级线程不需要与内核通信,便不需要与lwp连接

你可能感兴趣的:(java线程是用户级线程还是内核级线程?)