JVM是Jave EE 平台的基础。它是中间件和应用程序被部署和运行的地方。
JVM与中间件之间的交互
图中展示的JVM、中间件和应用程序件之间的一些简单和典型的交互。
如你所见,标准Java EE应用程序的线程的分配实在中间件内核与JVM之间完成的。(当然也有例外,应用程序可以直接调用API来创建线程,这种做法并不常见,而且在使用的过程中也要特别的小心)。
请注意一些线程是由JVM内部来进行管理的,典型的例子就是垃圾回收线程,JVM内部使用这个线程来做并行的垃圾回收处理。因为大多数的线程分配都是由Java EE容器完成的,所以能够理解和认识线程堆栈跟踪,并能从线程堆栈数据中识别出它来。这可以让你能够快速的知道Java EE容器正要执行的是什么类型的请求。