最近在看多线程,但是对死锁产生了疑惑
public void test01(){
synchronized(A){B }
}
这种机制可能发生死锁的地方究竟是A区域还是B区域?
1.A区域究竟什么对象可以作为锁?
2.是不是我在一个线程中将A这个对象作为锁,在另一个线程中对A这个对象进行操作,就会发生死锁?
3不是说任何对象都可以作为一把锁吗?那么每一个锁我使用一个独立的成员对象作为锁,不就是可以很容易避开死锁吗?为什么说死锁很容易发生?
public void test01(){
synchronized(A){B }
}
这种机制可能发生死锁的地方究竟是A区域还是B区域?
1.A区域究竟什么对象可以作为锁?
2.是不是我在一个线程中将A这个对象作为锁,在另一个线程中对A这个对象进行操作,就会发生死锁?
3不是说任何对象都可以作为一把锁吗?那么每一个锁我使用一个独立的成员对象作为锁,不就是可以很容易避开死锁吗?为什么说死锁很容易发生?