Executor框架的两级调度模型
在HotSpot VM的线程模型中 |
---|
Java线程(java.lang.Thread)被一对一映射 为本地操作系统线程。Java线程启动 时会创建 一个本地操作系统线程;当该Java线程终止 时,这个操作系统线程也会被回收 。操作系统会调度 所有线程并将它们分配给可用的CPU。 |
在上层,Java多线程程序通常把应用分解为若干个任务 ,然后使用用户级的调度器(Executor框架)将这些任务 映射为固定数量的线程 ;在底层,操作系统内核将这些线程 映射到硬件处理器 上。这种两级调度模型的示意图如下图所示。 |
从图中可以看出,应用程序通过Executor 框架控制上层的调度;而下层的调度由操作系统内核 控制,下层的调度不受应用程序的控制。 |
-----------------------------------------------------------------------------读书笔记摘自 书名:Java并发编程的艺术 作者:方腾飞;魏鹏;程晓明