wait()、notify()和notifyAll()是Object类中的方法(必须写在Synchronized里面)
1)wait()、notify()和notifyAll()方法是本地方法,并且为final方法,无法被重写。
2)调用某个对象的wait()方法能让当前线程阻塞,并且当前线程必须拥有此对象的monitor(即锁),调用后将会出让该锁。
3)调用某个对象的notify()方法能够唤醒一个正在等待这个对象的monitor的线程,如果有多个线程都在等待这个对象的monitor,则只能唤醒其中一个线程;并不保证哪个线程能够取得该锁。
4)调用notifyAll()方法能够唤醒所有正在等待这个对象的monitor的线程;
尤其要注意一点,一个线程被唤醒不代表立即获取了对象的monitor,只有等调用完notify()或者notifyAll()并退出synchronized块,释放对象锁后,其余线程才可获得锁执行。
本文详细介绍了Java中Object类的wait(), notify() 和 notifyAll() 方法的使用方式及注意事项。这些方法用于实现线程间的同步与通信,是理解Java并发编程的基础。
wait notify notifyall&spm=1001.2101.3001.5002&articleId=77530378&d=1&t=3&u=ec783b901a404ff981c479de3ecfe31a)
1万+

被折叠的 条评论
为什么被折叠?



