同一个线程获取和释放多个锁
acquirement and release of multiple locks by the same thread
假设某个线程获得了对象 A 的锁,现在正在执行该对象的同步方法。在该方法中,调用了某个对象 B 的同步方法,并且线程在尝试获取该对象 B 的锁时被阻塞。
当线程等待对象 B 的锁时,对象 A 的锁是否被释放?
这种情况会导致多线程设计出现问题吗?
不,对象 A 将保持锁定状态。
如果其他线程先锁定 B 并尝试锁定 A,则可能导致死锁。
假设某个线程获得了对象 A 的锁,现在正在执行该对象的同步方法。在该方法中,调用了某个对象 B 的同步方法,并且线程在尝试获取该对象 B 的锁时被阻塞。
当线程等待对象 B 的锁时,对象 A 的锁是否被释放?
这种情况会导致多线程设计出现问题吗?
不,对象 A 将保持锁定状态。
如果其他线程先锁定 B 并尝试锁定 A,则可能导致死锁。