线程允许在一个进程中同时存在多个程序控制流
线程共享进程范围内的内存地址空间
线程会带来安全性、活跃性和性能问题
线程安全性:某个类的行为与其规范完全一致
线程安全的类:当多个线程访问时,这个类始终表现出正确的行为,不违背不变性条件(invariant)、后验条件(postcondition)
竞态条件(race condition):由于不恰当的执行时序产生不正确的结果
数据竞争(data race):不采用同步协同访问共享非final域
volatile变量:轻量级同步机制,只能确保可见性,不能确保原子性
volatile变量正确使用方式:1. 确保变量自身状态可见性,2. 确保变量应用对象状态可见性,3. 标识程序生命周期中初始化、关闭等关键节点
hashTable
hashMap
concurrentHasMap