月度归档:2019年02月

Java多线程的三个核心思想

  1. 一把锁只能同时被一个线程所持有,没有拿到锁的线程只能等待。
  2. 每个实例都对应有自己的一把锁,不同实例互不影响。注意:当锁对象是*.class以及synchronized修饰的static方法时所有对象都共用同一把锁。
  3. 无论方法是正常执行完毕还是抛出异常,都会释放锁。