问答

线程遇到for循环时,CPU切换了,会再次从头执行for循环吗?

作者:admin 2021-08-12 我要评论

当线程1在执行for循环时,执行到一半,失去了CPU的执行权,此时再次获取到CPU的执行权时会从上次运行的位置继续往后执行呢还是重头开始再次执行一遍。 这里指的f...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

当线程1在执行for循环时,执行到一半,失去了CPU的执行权,此时再次获取到CPU的执行权时会从上次运行的位置继续往后执行呢还是重头开始再次执行一遍。
这里指的for循环是

for (;;) {
 1    int a = b+1;
 2    //执行到2处失去CPU执行权
 3
}
###

所谓 CPU 切换你应该指的是 CPU 分片导致的进程/线程上下文切换吧?

把这个问题补全你应该就明白了。

既然线程运行状态是有上下文状态的,那么线程切换当然不会影响 for 循环了,继续进行呗,不会重头的。

###

感觉会继续执行,程序计数器记录着执行到哪一行

###

怎么想的重新运行...
先不说程序怎么感知到CPU切换
就算能感知,每次切回来还要要把寄存器、计数器等环境全部重置到循环开始的状态?

###

不会 有程序计数器,cpu执行过的数据也会存起来,下次继续执行

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 线程遇到for循环时,CPU切换了,会再次

    线程遇到for循环时,CPU切换了,会再次

  • vue如何根据路由信息实现动态继承或者m

    vue如何根据路由信息实现动态继承或者m

  • 小程序引用外部样式,文件是xml

    小程序引用外部样式,文件是xml

  • vue项目里面使用audio ,为什么有的时

    vue项目里面使用audio ,为什么有的时

腾讯云代理商
海外云服务器