. -> 归因于内存模型, 规定线程所做的变化何时以及如何对其他线程可见.如果读和写操作没有都被同步, 同步就不会起作用.volatile修饰符不执行互斥访问, 但它可以保证任何一个线程在读取该域的时候都将看到最近刚刚被写入的值...concurrent collection, CopyOnWriteArrayList.通常, 应该在同步区域内做尽可能少的工作.第80条 executor, task和streams优先于线程Java...所以它的实例可以被并发使用, 无需任何外部同步. -> Random, ConcurrentHashMap.有条件的线程安全(conditionally thread-safe). -> 有些方法需要外部同步...有条件的线程安全必须在文档中指明"哪个方法调用序列需要外部同步, 以及在执行这些序列的时候要获得哪把锁".无条件的线程安全类, 应该考虑使用私有锁对象来代替同步的方法 -> 防止客户端程序和子类的不同步干扰...却增加了访问被延迟初始化的域的开销.当有多个线程共享一个延迟初始化的域, 采用某种形式的同步是很重要的.大多数的域应该正常地进行初始化, 而不是延迟初始化.