在多线程的情况下,一个线程修改了i的值,由于缓存一致性协议,其他的线程获取的i的值会失效。但是,可能会出现这么一种情况。在这个线程修改i的值的同时,其他线程已经把i从缓存行中加载到了cpu寄存器,缓存一致性协议只对缓存行有效,对寄存器不起作用。所以会继续执行i++的操作。最后导致线程安全问题。
2 6

相关推荐

牛客网
牛客企业服务