返回信息流在查看了大作业要求以及output,input之后感觉可以得出结论:多线程cpu拥有不同的寄存器,但是里头的内容一样。不禁产生怀疑,大一接触到的所谓寄存器和cpu内部的多级cache之间什么关系,[ema1]
这是一条镜像帖。来源:北邮人论坛 / cpp / #100083同步于 2020/6/20
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
关于c语言大作业的一点想法和疑问
JokerAdmin
2020/6/20镜像同步16 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
cpu里面的寄存器是执行运算指令,比如+-这些计算用的,看了你的大作业要求,这些多核cpu共享了内存,两个线程同时访问同一个内存地址的变量就会有线程同步问题,你搜一下多线程同步问题吧
【 在 JokerAdmin 的大作中提到: 】
:
【 在 shinyruoqaq 的大作中提到: 】
: cpu里面的寄存器是执行运算指令,比如+-这些计算用的,看了你的大作业要求,这些多核cpu共享了内存,两个线程同时访问同一个内存地址的变量就会有线程同步问题,你搜一下多线程同步问题吧
: :
感谢大大愿意理我orz
其实我之前抱着相关的一些资料啃了一阵了,但是按照我的理解,锁住了之后就应该一直等待啊,为什么我都waitforsingleobject了,他还是成功的访问到了这个handle指向的地址,就很难理解
(不过我发现加上初始化票数之后倒是长得和答案一样了
建议系统学一下memory hierarchy
【 在 JokerAdmin (周官子) 的大作中提到: 】
: 在查看了大作业要求以及output,input之后感觉可以得出结论:多线程cpu拥有不同的寄存器,但是里头的内容一样。不禁产生怀疑,大一接触到的所谓寄存器和cpu内部的多级cache之间什么关系,[ema1]
: --
: ...................
cpu从内存中取数据到寄存器,对寄存器的数据操作,把寄存器的数据存到内存。 cpu的运算过程就是周期性地 从内存取数据到寄存器,执行指令,把寄存器的数据存到内存。 寄存器和内存的存取速度差距大,多级cache起到缓冲的作用。 把寄存器锁住,以免寄存器的值被改写,要是不锁,值还没用完就被改写,就出问题了。 一般读数据不会出问题,所以大概就不限制读。