学过java的人都知道,java代码的执行过程为:源代码首先被编译成为字节码,然后由jvm加载到内存里面,再然后由jvm翻译为机器码执行。这里面我想知道的是,在最后一步中,jvm将字节码翻译为机器码之后,是如何将cpu的执行权交给翻译后的机器码的?而翻译后的机器码被cpu执行完毕后,又是如何将执行权交还给jvm从而可以翻译并执行下一段字节码的?也许是不太懂的这种问题该如何查找,在百度上面一直没有找到相关的解释,如果有哪位同学研究过这类问题并且弄清楚了其中的机制,还望不吝赐教,多谢。
jvm解释执行字节码时最终也会翻译成cpu指令,编译后的机器码也是cpu指令。没啥区别。cpu执行权是个什么鬼?系统里任务的执行是进程和线程。这个问题里许多概念是错的。建议看下《现代操作系统》这本书,完了再学Jvm。