并发入门
2023-01-06 17:22:38 0 举报
并发入门总集 https://blog.csdn.net/qq_35483542/article/details/128510700
作者其他创作
大纲/内容
总线
T2
E
控制单元
局部变量表
内存访问A
运算单元
x=5
main()-栈帧
缓存
cpu1 core1
x=6
IO桥
S
动态链接
本地方法栈
寄存器
I
cpu1 core2
线程B
IO总线
T1与T2同时加载就会变为S共享状态
T1
处理器1
时间轴
线程A
L1
x=8
MOESI,会置为O状态直接通知T2,T2从写缓存中读取新值X=8,不再从内存加载,但是新线程从内存加载x时会有一致性问题
main线程
USB
内存
分配方法栈帧
L2
通知修改
CPU切换
操作数栈
main()xxx方法-栈帧
程序计数器
方法出口
内存总线
变量副本
修改
L3
显卡
从内存加载新值
这个时候在T1的CPU缓存中x=5,但是T2的CPU缓存与内存中x=6,出现了相同变量但缓存副本不同值的情况
处理器2
刷新内存值
栈(FILO)
cpu2 core1
磁盘
x=10
内存访问B
微信
如果在T2修改主内存副本数据时,通知T1数据发生变化需要修改或数据已失效需要重新刷新数据,那么就解决了副本数据不相同的问题
M
。。。。。。
cpu2 core2
cpu
系统总线
T1修改数据X=8,T2数据置为无效
0 条评论
回复 删除
下一页