可见性 可见性是由于java对于多线程处理的内存模型导致的.这似乎是一种失败的设计,但是JVM却能充分的利用多核处理器的强大性能,例如在缺乏同步的情况下,Java内存模型允许编译器对操作顺序进行重排序,并将数值缓存在寄存器中,同时,它还允许CPU对操作顺序进行重排序,并将数值缓存在处理器的特定缓存中. 可见性可以导致3个问题,失效数据,非原子的64位操作,重排序. 失效数据 如果一个共享的数据被多个线程读写,一个线程执行了写入,随后另外一个线程执行了读取,可能读取到的是未写入之前的数据. 也就是…