Java中wait方法和sleep的不同之处

章节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


This entry was posted in JAVA and tagged , , , . Bookmark the permalink.
月小升QQ 2651044202, 技术交流QQ群 178491360
首发地址:月小升博客https://java-er.com/blog/java-wait-sleep-notify-notifyall/
无特殊说明,文章均为月小升原创,欢迎转载,转载请注明本文地址,谢谢
您的评论是我写作的动力.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

*