为什么下面的多线程相关示例代码被破坏了?
public void method1(){
synchronized(intVariable){
}
synchronized(stringVariable){
}
}
public void method2(){
synchronized(stringVariable){
}
synchronized(intVariable){
}
}
以上两个方法来自同一个类,其中 stringVariable 和 intVariable 是实例变量。
我认为这不会引起任何问题,至少在线程死锁的情况下。这段代码被破坏还有其他原因吗?