public void myMethod1() throws Exception {
synchronized (MyClass.class) {
Thread.sleep(10*1000);
synchronized (MyClass2.class) {
}
}
}
public void myMethod2() throws Exception {
synchronized (MyClass2.class) {
Thread.sleep(10*1000);
synchronized (MyClass1.class) {
}
}
}
Звоните myMethod1
из одного потока и myMethod2
из другого потока, и вы получите тупик.