考点介绍:
wait、notify和notifyAll在大厂校招面试中是常考点,这三个方法由于需要控制对对象的控制权(monitor),所以属于object而不是属于线程三者间的区别及使用方法等都需要熟练掌握。
答案详情解析和文章内容可扫下方海报二维码或点击链接即可查看!
一、考点试题
1、wait()和sleep()的区别
解答:sleep来自Thread类,和wait来自Object类,调用sleep()方法的过程中,线程不会释放对象锁。而 调用 wait 方法线程会释放对象锁......
2、Notify和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类的普通方法......
帖子还没人回复快来抢沙发