1. 对象锁和类锁 对象锁:锁的是类的对象 类锁:锁的是类对应的class对象,该class对象在jvm中只有一个,所以类锁只有一个 2. 等待通知模式 等待方: - 获得对象锁 - 循环判断条件是否满足,不满足调用wait()方法 - 执行业务逻辑 通知方: - 获得对象锁 - 改变条件 - 通知等待线程 对于等待超时模式: 在判断条件时候需要加上超时判断,并且wait方法要调用超时wait()