引子 之前的文章我们探讨了引发线程安全的原因主要是由于多线程的对共享内存的操作导致的可见性或有序性被破坏,从而导致内存一致性的错误.那么如何设计并发代码解决这个问题呐?我们一般使用这几种方式: 线程封闭 不可变对象 同步 发布和逸出 在此之前 我们先来了解一下发布和逸出的概念.发布是指让对象在当前作用域之外使用,例如将对象的引用传递到其他类的方法,在一个方法中返回其引用等.在许多情况下我们要保证内部对象不被发布,发布一些内部状态可能会破坏封装性,让使用者可以随意改变其状态,从而破坏线程安全.而在