synchronized 方法
每个 synchronized 方法都必须获得调用该方法的类实例的锁方能执行,否则所属线程阻塞,方法一旦执行,就独占该锁,直到从该方法返回时才将锁释放,此后被阻塞的线程方能获得该锁,重新进入可执行状态。
synchronized 代码块
synchronized 关键字还可以用于方法中的某个区块中,表示只对这个区块的资源实行互斥访问,它的作用域是当前对象。
synchronized 静态方法
作用在静态的方法,取得的锁很特别,是当前调用这个方法的对象所属的类(Class对象)。