在java.lang.Thread中,我们看到线程在等待监视器锁定时进入BLOCKED状态,这与例如在线程调用LockSupport.park时的WAITING状态不同。 但是,当我在ObjectMonitor.cpp中学习HotSpot JVM的监视器锁定实现时,我看到它在等待其他线程持有的监视器锁定时使用“停放”。我认为这与LockSupport.park的实现是相同的。 所以我的问题是:
为什么监视器锁定的暂存区使线程进入BLOCKED状态,而LockSupport.park的暂存区使线程进入等待状态?
为什么不能中断监视程序锁定的空间(Doug Lea在“ Java并发编程”中说,“如果已经存在,则无法撤消尝试获得锁定的方法举行,放弃 等待指定的时间后,或者在中断后取消锁定尝试。这样可能很难从活动问题中恢复。”)但是LockSupport.park的停放会被中断吗?