章节1:Java中wait方法和sleep的不同之处
区别1:
a.wait来自Object方法
b.sleep来自Thread方法
区别2:
a.sleep 让当前方法休眠1000毫秒,休眠后自动醒来,不一定要是锁对象
b.wait 传入毫秒参数,效果和sleep方法相似,但是比较麻烦,wait方法必须由锁对象调用
锁对象必须存放在同步当中 (不建议wait(1000) )建议wait()
区别3:
wait() 方法等待过程中,会释放锁对象
sleep()方法等待过程不会释放锁对象
区别4:
print.class().wait(); //如果空参数wait() 必须由一个notify 对其唤醒
print.class().notify(); //唤醒了是等待的线程,不一定是自己
wait() 让线程进入无限等待状态,必须由notfiy() 方法对其唤醒
sleep();方法带时间,自动醒来
https://www.bilibili.com/video/BV1Ap4y1e7vk
章节2:notify 和 notifyAll的区别
notify随机唤醒一个线程,算法基于线程调度器
notifyAll 默认唤醒所有线程 做了一个动作争抢锁,先抢到锁的线程先执行
https://www.bilibili.com/video/BV1m54y1R7ZV?from=search&seid=14486140774511130423&spm_id_from=333.337.0.0