在Java中,有没有一种方法可以在通知线程之后获得线程的实际等待时间

在Java中,有没有一种方法可以在通知线程之后获得线程的实际等待时间,java,multithreading,Java,Multithreading,如果我使用wait()函数让一个线程等待20秒,那么我会在它完成等待之前用另一个线程通知这个线程。我可以得到实际的等待时间吗?实现这一点的一种方法是在等待之前启动秒表,看看线程需要多长时间才能继续: Object ob; public void waitingThread(){ try { Long before =System.nanoTime(); ob.wait(20); long waitTime = System.nanoTim

如果我使用
wait()
函数让一个线程等待20秒,那么我会在它完成等待之前用另一个线程通知这个线程。我可以得到实际的等待时间吗?

实现这一点的一种方法是在等待之前启动秒表,看看线程需要多长时间才能继续:

Object ob;

public void waitingThread(){
    try {
        Long before =System.nanoTime();
        ob.wait(20);
        long waitTime = System.nanoTime() - before;
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
}

抱歉,没有

的等待请看这篇文章:返回
无效
,因此如果不写额外的代码,这是不可能的。请看等待前后的时间。@Villat这似乎有效,谢谢!