如果我有下面的代码
synchronized (this)
{
System.out.println("Waiting for return key.");
scanner.nextLine();
System.out.println("Return key pressed.");
notify();
Thread.sleep(5000);
}
之后notify
,我正在调用 sleep 这意味着,我已经通知了等待线程但没有放弃锁,现在会发生什么.. 通知等待线程之后会被唤醒但无法获取锁,所以从这里开始,是不是很忙?因为我们不会再打电话notify
了。
同样的问题是,在一个线程被唤醒notify
并notifyall
获得锁之后,所有其他等待的线程是否都变成了忙等待?