我们不仅仅希望防止某个线程使用某个状态时,另一个线程在修改它:我们还希望某个线程修改了某个状态后,其他线程能够看到状态的变化. 一.可见性 重排序:在没有同步的情况下,编译器.处理器可能对代码的执行顺序进行一些调整 例如如下代码,由于没有使用同步机制,读线程可能看不见ready的修改,而一直循环下去:也可能由于重排序,看到了ready的修改number仍没修改而输出0 1.失效数据 在缺少同步的程序中产生错误的结果的一种情况.造成程序的不确定性. 2.非原子的64位操作 即使是失效数据也是程序过…