Object的notify()和wait()方法
Object的wait()和notify()方法
final Object lock = new Object();
// 线程A
synchronized(lock) {
lock.wait();
// ...
}
// 线程B
synchronized(lock) {
lock.notify();
// ...
}
wait():在线程A中,调用锁的wait()方法,线程A释放此锁,进入等待状态notify():在线程B中,调用锁的notify()方法,唤醒一个正在等待此锁的线程,即线程A,线程A进入常规状态,以常规的方式与其他线程继续竞争此锁
tip:线程A被唤醒后并不是立即继续执行之后的代码,只有当它重新抢占到锁之后才能继续执行
tip:调用锁的wait()和notify()方法的前提是,当前线程已经抢占到了此锁