CPU执行原理

cpu的执行原理,时间片的切换。
cas为什么在任务执行时间短的情况并且任务量较少情况下比synchronized效率高呢?因为cas一直占着cpu,synchronized每次都要进行cpu的时间片切换。
cpu执行线程,cpu和线程是少对多的关系,所以cpu需要在多个线程中来回切换,每个线程只能被cpu的一个时间片内执行,JVM运行在操作系统上,上下文切换的时候:
1.JVM首先告诉操作系统,我要切换啦
2.操作系统把操作权限切换到内核态空间
3.把本次操作信息存储到该线程的pc寄存器中(运行时数据区共分为5部分1.pc寄存器2.虚拟机栈3.本地方法栈4.堆5.方法区,其中123位线程独有,45位所有线程共享)
4.内核态通知cpu,说可以啦
5.cpu说好的大哥,然后重新创建时间片
6.读取新的线程的pc寄存器中的执行指令继续执行。(pc寄存器是存储执行指令的,每次cpu切换完成后还会从 上次执行到的地方继续执行)

简单画个图 有图有真相
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值