嵌套管程锁死
下文讲述"嵌套管程锁死"的简介说明,如下所示:
嵌套管程锁死简介
嵌套管程锁死类似于死锁,如下场景就是一个“嵌套管程锁死”的场景:线程1获得A对象的锁。 线程1获得对象B的锁(同时持有对象A的锁)。 线程1决定等待另一个线程的信号再继续。 线程1调用B.wait(),从而释放了B对象上的锁,但仍然持有对象A的锁。 线程2需要同时持有对象A和对象B的锁,才能向线程1发信号。 线程2无法获得对象A上的锁,因为对象A上的锁当前正被线程1持有。 线程2一直被阻塞,等待线程1释放对象A上的锁。 线程1一直阻塞,等待线程2的信号,因此,不会释放对象A上的锁, 而线程2需要对象A上的锁才能给线程1发信号……
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。