线程不安全

多线程访问了共享,可变的变量。多表现在某些复合操作之间存在关联,并不具备原子性,这时候多线程的执行顺序不当会导致不正确的情况发生。

先检查后执行

读取-修改-写入

同步机制

内置锁,可重入锁,

syncronized

  1. 锁静态方法锁的是class对象。
  2. 锁成员方法锁的是当前对象。
  3. 锁方法里面的局部代码时,则需要根据实际情况而定。
  4. 锁成员方法时,子类如果没有重写这个锁方法,那么可以被继承。如果锁方法被重写了,那么不能被继承。