发一个问题,别人问我得。
关于线程安全的题目,
有两个线程,都对变量i进行操作。
++i;
每个线程跑100次循环。
i as global integer;
void func()
{
100.time(){ ++i; }
}
伪码是这个意思。
问i的理论最小值。
[解决办法]
你说说
[解决办法]
只要理解 对于cpu来说一个指令才是一个原子
其他的原子都是靠一定处理来完成的
所以a b c任何一个步骤可以被任意时刻打断
[解决办法]
自己逼视一下自己的第一次回复
〉〉只要最后的两百条指令是MOV[test] EAX就可以了
仔细想一下,这种情况,不可能发生的,
MOV[test] EAX 没有执行的时候, 下一次循环的mov eax [test] 和后续指令不肯能执行的
唉…………………………………