xzqy8181 2014-08-17 16:25
浏览 1015

关于CPU分配任务时的一些问题

我们都知道 CPU里是有时序的 任何一个程序说白了扔到CPU里时都是按照一个序列进行操作
例:
写X=0
读取X
写X=1
读取X

那现在如果出现了多核的CPU就可能出现这么个问题
假设这个多核CPU是双核 也就是A1 和A2 2个核
那么 假设每步CPU操作都需要1秒的时间 开始时间是0
A1 A2
第0秒 写X=0 不操作
第1秒 写X=1 读X 将X的值放入Y1
第2秒 写X=2 读X 将X的值放入Y2

我想问的是
最后 Y1 和Y2的值是多少?

PS:
其实问题就是
在单核CPU时 每步的操作是可以看成一个确定的前后顺序的队列的
但在多核CPU时 可能就不是一个确定的前后顺序的队列了

那么在多核CPU时就可能是一个不稳定 不确定的队列 那么在这种情况下(假设多核的确是不确定的队列) 在第2秒的时候 A2读取X时 A1的操作是不是先锁定X的值 当修改成X=2后 才解锁? 还是A1会直接修改 而不锁定?

说白了 多核CPU分配数据时 是否会自动的锁数据?如果不锁数据 那么当A1修改X=2时 修改的这步操作肯定是需要时间的 如果在A1修改时A2来读数据了 会怎么样?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥50 切换TabTip键盘的输入法
    • ¥15 可否在不同线程中调用封装数据库操作的类
    • ¥15 微带串馈天线阵列每个阵元宽度计算
    • ¥15 keil的map文件中Image component sizes各项意思
    • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
    • ¥15 划分vlan后,链路不通了?
    • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
    • ¥15 Vue3 大型图片数据拖动排序
    • ¥15 Centos / PETGEM
    • ¥15 划分vlan后不通了