wait方法和sleep方法区别
wait 来此Objcet类,必须由锁对象调用,所有对象被锁同步时都可以使用
缺点: 必须在同步块中使用,若使用空参必须使用notify唤醒
- notify 随机唤醒单个wait等待的线程
- notifyAll
sleep 来此Thread类,只能线程使用
优点: 使用简单,休眠后程序继续执行
wait等待会记录当前执行位置,并释放锁给其他资源
sleep等待记录当前执行位置,不释放锁给其他资源
wait在哪里等待,就在那里醒来会向下执行,需要将if修改为while,但是两条线程会发生锁死,所以使用notifyAll全部wait线程都唤醒