当线程执行通过停放线程而暂停时,是否会导致线程放弃任何已获取的对象监视器的所有权?
简而言之,如果一个线程 (t1) 获取“this”对象的监视器并被停放,而另一个线程 (t2) 尝试通过首先尝试获取“this”的监视器并阻塞来解除停放 t1,则以下代码是否会死锁.
// Thread t1 executes this code first.
syncronized(this) {
LockSupport.park();
}
// Thread t2 then executes this piece of code.
synchronized(this) {
LockSupport.unpark(t1);
}
最佳答案
因为t1
会出现死锁被阻止并且仍然拥有 this
的锁对象时 t2
正在尝试获取相同的锁。
关于java - 停放 JAVA 线程会导致释放任何获取的监视器吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42964878/