学过java的人都知道,java代码的执行过程为:源代码首先被编译成为字节码,然后由jvm加载到内存里面,再然后由jvm翻译为机器码执行。这里面我想知道的是,在最后一步中,jvm将字节码翻译为机器码之后,是如何将cpu的执行权交给翻译后的机器码的?而翻译后的机器码被cpu执行完毕后,又是如何将执行权交还给jvm从而可以翻译并执行下一段字节码的?也许是不太懂的这种问题该如何查找,在百度上面一直没有找到相关的解释,如果有哪位同学研究过这类问题并且弄清楚了其中的机制,还望不吝赐教,多谢。
1条回答 默认 最新
- CaptHua 2022-04-15 18:31关注
jvm解释执行字节码时最终也会翻译成cpu指令,编译后的机器码也是cpu指令。没啥区别。cpu执行权是个什么鬼?系统里任务的执行是进程和线程。这个问题里许多概念是错的。建议看下《现代操作系统》这本书,完了再学Jvm。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 QQ邮箱过期怎么恢复?
- ¥15 登录他人的vue项目显示服务器错误
- ¥15 (标签-android|关键词-app)
- ¥60 如何批量获取json的url
- ¥15 comsol仿真压阻传感器
- ¥15 Python线性规划函数optimize.linprog求解为整数
- ¥15 llama3中文版微调
- ¥15 pg数据库导入数据序列重复
- ¥15 三分类机器学习模型可视化分析
- ¥15 本地测试网站127.0.0.1 已拒绝连接,如何解决?(标签-ubuntu)