时钟中断(线程切换运行Runnable -> Running)缓存拷贝的问题

来源:12-11 问题原因

布鲁马3518274

2020-12-15

老师您好,学到这一节课真是又是开辟了新的知识领域,觉得自己务必要去学一下计算机组成原理了。不过还是先想问两个问题~

  1. 课程中提到的 内核独占内存 是不是 就是课称缓存图中的 高速缓存,还是高速缓存的下一层?(不会就是寄存器吧~)
  2. 在切换到下一个线程执行前,内核最少要把寄存器数据回写到哪层缓存?(既然老师说单核也有可见性问题,那么在CPU收到时钟中断指令后,寄存器必须让出来空间给下一个线程的数据。这时候就要拷贝数据 => 高速缓存,在切换之前是否会继续向下拷贝?我现在的结论是切换之前只是不会等回写到用户本地内存而已)

刚看完下节课JMM规范,感觉第二个问题真心较真儿了,感觉也没必要知道了。谢谢老师,这课程真是醍醐灌顶,觉都不想睡了~

写回答

1回答

悟空

2020-12-15

这里主要的问题就是JMM的内存模型和实际硬件内存模型的对应关系,通常是没有明确对应关系的,不过也有一篇文章讲到了这个问题,需要和堆栈联系起来,可以看看这个文章的最后的部分:http://tutorials.jenkov.com/java-concurrency/java-memory-model.html#javas-logic-memory-model

0
1
布鲁马3518274
牛逼,超出预期的回答,感觉又发现了宝贝网站~
2020-12-15
共1条回复

线程八大核心+Java并发原理及企业级并发解决方案

完整的并发知识网络+丰富的工作内容分享+50余道并发高频面试题

2512 学习 · 939 问题

查看课程