JVM之jstack实战死锁问题
这个条件占用部分资源的线程进一步申请其他资源时,如果申请不到可以主动释放它占有的资源,这样不可抢占这个条件就破坏掉了。线程尝试获取锁的时候加上一定的时限,超过时限则放弃对该锁的请求,并释放自己占有的锁。编写代码,启动2个线程,Thread1拿到了obj1锁,准备去拿obj2锁时,obj2已经被Thread2锁定,所以发送了死锁。,即存在一个等待队列:T1等待占有T2的资源,T2等待占有T3的资源,T3等待占有T1的资源。这样就形成了一个等待环路。,即当资源请求者在请求其他的资源的同时保持对原有资源的占有。