Java多线程锁重入是指: 在已经获得锁的同步方法或同步代码块内部可以调用锁定对象的其他同步方法, 不需要重新获取锁.
注意: 要弄清楚锁定对象是谁:
1.非静态同步方法锁定的是当前this对象.
2.静态同步方法锁定的是class字节码.
3.同步代码块则锁定的是括号中的对象.
不要使用String对象作为锁对象,防止常量池引发同步问题。
例如: class A有非静态同步方法methodA/methodB/methodC, 在methodA内部可以调用methodB/methodC.
Java多线程锁重入是指: 在已经获得锁的同步方法或同步代码块内部可以调用锁定对象的其他同步方法, 不需要重新获取锁.
注意: 要弄清楚锁定对象是谁:
1.非静态同步方法锁定的是当前this对象.
2.静态同步方法锁定的是class字节码.
3.同步代码块则锁定的是括号中的对象.
不要使用String对象作为锁对象,防止常量池引发同步问题。
例如: class A有非静态同步方法methodA/methodB/methodC, 在methodA内部可以调用methodB/methodC.