Java中sleep和wait方法的异同点

sleep和wait的区别,面试中经常碰到的问题,锁一我们必须得记得一清二楚:

相同点:可以让线程处于冻结状态(放弃cpu执行权)


不同点:1,sleep必须指定时间,wait可以指定之间,也可以不指定时间(易错点);

2,sleep时间到,线程处于临时阻塞和运行,wait如果没有指定时间,必须用notify或notifyAll唤醒;

3,sleep不一定非要定义在同步中,wait必须定义在同步中;

4,若都定义在了同步中,线程执行到sleep,不会释放锁,线程执行到wait,会释放锁(重点)。


上述第四点是最重要的一点,也是最难记的一点,也是最容易记混的一点。给大家说说记住的技巧:

java 中的方法和变量的命名都是有一定规则的sleep顾名思义只是睡会儿,我的东西给你了,醒来了怎么办。

wait是等待的意思就是说,你等等该我了,但是你若拿着这个锁,该我了,我又不能执行,能算该我吗,所以该我了,你把锁也得给我。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。