文章目录
- 1. API 介绍
- 2. 怎么使用wait、notify
- 2.1 sleep 和 wait 的区别
- 2.2 sleep 和 wait 的使用模板
 
 
 
 
1. API 介绍
都属于 Object 对象的方法。必须获得此对象的锁,才能调用这几个方法,只有重量级锁才能调用wait、notify
- obj.wait() 让进入 object 监视器的线程到 waitSet 等待
- obj.notify() 在 object 上正在 waitSet 等待的线程中挑一个唤醒
- obj.notifyAll() 让 object 上正在 waitSet 等待的线程全部唤醒
2. 怎么使用wait、notify
2.1 sleep 和 wait 的区别
- sleep 是 Thread方法,而 wait 是Object的方法
- sleep 不需要强制和 synchronized 配合使用,但 wait 需要和synchronized一起用
- sleep在睡眠的同时,- 不会释放对象锁的,但- wait在等待的时候- 会释放对象锁
- 状态都为 TIMED_WAITING
2.2 sleep 和 wait 的使用模板
使用while即使notify all都唤醒了,但是自己这个线程条件还不满足时再次进入while,再次wait。
 



















