【校招VIP】java语言考点之wait、notify和notifyAll

09月19日 收藏 0 评论 0 java开发

【校招VIP】java语言考点之wait、notify和notifyAll

考点介绍:

wait、notify和notifyAll在大厂校招面试中是常考点,这三个方法由于需要控制对对象的控制权(monitor),所以属于object而不是属于线程三者间的区别及使用方法等都需要熟练掌握。

答案详情解析和文章内容可扫下方海报二维码或点击链接即可查看!

一、考点试题

1、wait()和sleep()的区别

解答:sleep来自Thread类,和wait来自Object类,调用sleep()方法的过程中,线程不会释放对象锁。而 调用 wait 方法线程会释放对象锁......

2Notify和notifyAll的区别(阿里面试题)

解答:由图可知

进入等待队列后,会由notify或notifyAll唤醒 当你调用notify时,只有一个等待线程会被唤醒而且它不能保证哪个线程会被唤醒,这取决于线程调度器......

3、为什么 wait(), notify()和 notifyAll()必须在同步方法或者同步块中被调用?

解答:Java中,任何对象都可以作为锁,并且 wait(),notify()等方法用于等待对象的锁或者唤醒线程......

4、wait/notify会带来哪些问题?

解答:1.过早唤醒问题

等待线程W和通知线程N都为同步对象someObject锁线程,如果通知线程N3更新好了共享变量......

二、考点文章

1、Java多线程学习之wait、notify/notifyAll 详解

wait()、notify/notifyAll() 方法是Object的本地final方法,无法被重写......

2、notify() 和 notifyAll() 有什么区别?

先解释两个概念。

1、等待池:假设一个线程A调用了某个对象的wait()方法,线程A就会释放该对象的锁后,进入到了该对象的等待池,等待池中的线程不会去竞争该对象的锁。

......

3、Java的wait(), notify()和notifyAll()使用小结

wait(),notify()和notifyAll()都是java.lang.Object的方法:

......

三、考点视频

多线程中sleep()和wait()方法的区别

1 所属类不同

sleep是线程类Thread的静态方法,wait是object类的普通方法......

移动端链接:https://m.xiaozhao.vip/dTopic/detail/1203

PC端链接:https://xiaozhao.vip/dTopic/detail/1203

C 0条回复 评论

帖子还没人回复快来抢沙发