1,一把锁只能同时被一个线程获取,没有拿到锁的线程必须等待;
2,每个实例都对应有自己的一把锁,不同实例之间互不影响;例外:锁对象是*.class以及Synchronized修饰的是static方法的时候,所有对象共用同一把类锁;
3,无论是方法正常执行完毕还是抛出异常,否会释放锁。
参见 悟空老师课程 https://www.imooc.com/learn/1086
参见 悟空老师课程 https://www.imooc.com/learn/1086
参见 悟空老师课程 https://www.imooc.com/learn/1086