java-在等待时从内部调用synchronized方法

java-在等待时从内部调用synchronized方法,java,Java,在等待资源可用时(使用wait()),是否可以从同步方法内部调用同步方法?感谢Java的互斥体是递归的,因此您可以递归调用同步方法,或者调用另一个已持有锁的同步方法。不过,你需要告诉我们你具体想做什么。。。。线程锁定/同步的很多东西,如果做得不正确,可能会导致死锁,而且您的问题并不完全清楚您试图做什么。否。无法检查给定对象的监视器当前是否在java中处于保留状态,也无法通过原子方式“检查并获取”对象的锁 不过,您可能需要查看标准java包。类锁具有tryLock()功能,可以尝试获得锁(因此,如

在等待资源可用时(使用wait()),是否可以从同步方法内部调用同步方法?感谢

Java的互斥体是递归的,因此您可以递归调用同步方法,或者调用另一个已持有锁的同步方法。不过,你需要告诉我们你具体想做什么。。。。线程锁定/同步的很多东西,如果做得不正确,可能会导致死锁,而且您的问题并不完全清楚您试图做什么。

否。无法检查给定对象的监视器当前是否在java中处于保留状态,也无法通过原子方式“检查并获取”对象的锁


不过,您可能需要查看标准java包。类锁具有tryLock()功能,可以尝试获得锁(因此,如果线程无法获得锁,那么它可以根据tryLock()的返回值执行其他操作)。

这个问题应该重新表述。虽然Michael的回答在技术上是正确的,但如果您询问的是单个简单的可重入同步块或更复杂的问题,那么这个问题就不清楚了。同步块和并发性需要在它们的整个上下文中查看。另外:如果线程正在等待某个事件发生(在
对象中。wait(…)
调用),那么它就不能调用任何东西。IMO需要一些说明性代码。