JVM中的应用程序线程

时间:2017-09-25 19:08:30

标签: jvm

当JVM运行我们的程序时(比如像Hello World这样最简单的程序),它会为它启动一个应用程序线程。而且,我的问题是:在该线程中究竟执行了什么?它是执行我们程序的字节码解释器吗?我们可以假设我们的程序没有被JIT。

1 个答案:

答案 0 :(得分:0)

  

它为它启动一个应用程序线程。

JVM是一个程序,当它启动时,它必须至少有一个线程来运行任何东西。因此,JVM不需要启动第一个线程。

  

该线程究竟执行了什么?

这取决于JVM。例如,https://www.excelsiorjet.com/在启动程序之前预编译代码,因此它已经在本机代码中。 Oracle JVM只有在运行足够的代码后才编译代码,这对于hello world来说是不可能的。

  

我们可以假设我们的程序没有被JIT

你不能假设代码已经或者没有被JIT编过,你也不能认为它只是因为它现在已经被JIT修改,以后它不会被重新编译,即它可能会掉落在某些情况下回到翻译模式。