一 两级调度模型
在JVM的线程模型中,Java线程被一对一的映射为本地操作系统线程,Java线程启动会创建一个本地操作系统线程;当该Java线程终止时,这时操作系统线程也会被回收。操作系统会调度所有线程并将它们分配给可用的CPU。
在上层,Java多线程程序通常把应用分解为若干个任务,然后使用用户级的调度器(Executor)将这些任务映射为固定数量的线程;在底层,操作系统内核将这些线程映射到硬件处理器上,这便是两级调度模型,如下图:
在JVM的线程模型中,Java线程被一对一的映射为本地操作系统线程,Java线程启动会创建一个本地操作系统线程;当该Java线程终止时,这时操作系统线程也会被回收。操作系统会调度所有线程并将它们分配给可用的CPU。
在上层,Java多线程程序通常把应用分解为若干个任务,然后使用用户级的调度器(Executor)将这些任务映射为固定数量的线程;在底层,操作系统内核将这些线程映射到硬件处理器上,这便是两级调度模型,如下图: