CPU读取共享变量并写入过程
2021-10-13 17:10:23 11 举报
登录查看完整内容
CPU读取共享变量的过程是,首先通过内存地址找到共享变量所在的存储空间,然后将该地址传递给寄存器。接着,CPU会发出读请求信号,通知其他处理器该变量当前的状态。当其他处理器完成对共享变量的修改后,它们会将新值写回内存中。最后,CPU从寄存器中读取新的值并将其存储到自己的缓存中,以便后续使用。 写入共享变量的过程与读取类似。首先,CPU将要写入的值存储到寄存器中,并通过内存地址找到共享变量所在的存储空间。然后,CPU发出写请求信号,通知其他处理器该变量即将被修改。当所有处理器都确认接收到写请求后,它们会将自己的缓存中的旧值写回内存中。最后,CPU将新的值写入到共享变量所在的内存地址中。
作者其他创作
大纲/内容
6.write
总线嗅探
BUS总线(缓存一直性协议)
CPU 核 0
CPU 核 1
count = 0
count = count +1
Thread-B(执行引擎)
4.assign
5.store
2.load
假如线程B也对count执行了+1操作,并且比线程A快,就会发生消息通知count失效,重新读取,但倘若A已经读到了寄存器中,就可能被CPU写回,导致并发问题
count ++是原子操作,分三步完成。每一步又不是原子的1.读 count = 02.count = count+13.写回主内存
Thread-A(执行引擎)
use
两个线程对成员变量执行count ++ 操作
count = 1
3.use
工作内存
CPU
主内存
1.read
0 条评论
回复 删除
下一页