天天看点

让面试官疯狂加分的回答!Java中sleep和wait方法的区别。今天一共有两轮面试,第一轮是技术面考察一下你的实际能力

作者:学Java2

让面试官疯狂加分的回答!Java中sleep和wait方法的区别。

今天一共有两轮面试,第一轮是技术面考察一下你的实际能力。开始面试,你知道Java里面Sleep和wait方法的区别吗?区别的话:sleep()是让线程睡眠,然后wait是让线程等待。区别就是sleep()是在隔一段时间以后会自动唤醒,wait是自己要等到其他的人去唤醒。

你在这里等一下,我会让我的领导过来跟你聊一下,然后来看一下你的综合情况。这道题的文字版我已经整理在50万字的面试文档里面,大家如果有需要可以在评论区留言领取。

好的面试官:wait()它是Object类中定义的方法,它使线程等待并释放占有的锁,让其他线程可以获得锁并且继续执行。在调用wait方法时候,线程必须先获得对象的监视器锁,否则它会抛出异常。

wait方法会让线程进入等待状态,直到有其他线程调用:notify()或suspendAll(方法来唤醒它,或者等待时间到期。当线程唤醒以后必须重新去竞争锁。只有获得锁以后才能继续去执行。

white方法常用于线程间的通信和协调,例如生产者消费者模型。sleep()是Thread类中定义的静态方法,它会使当前线程暂停执行一段时间不会释放锁。在调用sleep()方法时,线程不需要获得任何锁,它会让线程暂停执行一段时间,直到时间到期或者被其他线程中断。当线程被唤醒后会立即恢复执行,不需要重新竞争锁。

sleep()方法通常用于线程的延迟执行,例如定时任务等等。综上所述,wait()和sleep()的主要区别在于:wait()会释放锁,而sleep()不会释放锁。

wait()需要在同步代码快速中调用,而sleep()不需要。wait()需要被其他线程唤醒,而sleep()会在一定时间后自动唤醒。

wait()通常用于线程之间的通信和协调,而sleep()通常用于线程的延迟执行。不好意思,领导刚刚在开会,所以现在我没法给你安排接下来的面试。你今天先回去,二面的时候我会再通知你。

让面试官疯狂加分的回答!Java中sleep和wait方法的区别。今天一共有两轮面试,第一轮是技术面考察一下你的实际能力
让面试官疯狂加分的回答!Java中sleep和wait方法的区别。今天一共有两轮面试,第一轮是技术面考察一下你的实际能力
让面试官疯狂加分的回答!Java中sleep和wait方法的区别。今天一共有两轮面试,第一轮是技术面考察一下你的实际能力
让面试官疯狂加分的回答!Java中sleep和wait方法的区别。今天一共有两轮面试,第一轮是技术面考察一下你的实际能力

继续阅读