考点介绍:
wait、notify和notifyAll在大厂校招面试中是常考点,这三个方法由于需要控制对对象的控制权(monitor),所以属于Object而不是属于线程,三者间的区别及使用方法等都需要熟练掌握。
本期分享的java语言考点之wait、notify和notifyAll,分为试题、文章以及视频三部分。
答案详情解析和文章内容点击下方链接即可查看!
一、考点题目
1. wait()和sleep()的区别
解答:sleep来自Thread类,和wait来自Object类,调用sleep()方法的过程中,线程不会释放……
2. Notify和notifyAll的区别(阿里面试题)
解答:由图可知。进入等待队列后,会由notify或notifyAll唤醒 当你调用notify时,只有一个等待线程会被唤醒而且……
3.为什么 wait(), notify()和 notifyAll()必须在同步方法或者同步块中被调用?
解答:Java中,任何对象都可以作为锁,并且 wait(),notify()等方法用于等待对象的锁或者唤醒线程,在 Java 的线程中并没有可供任何对象使用的锁,所以……
4.wait/notify会带来哪些问题?
解答:过早唤醒问题,等待线程W和通知线程N都为同步对象someObject锁线程,如果通知线程N3更新好了共享变量,调用notifyall通知唤醒所有……
(点击查看答案哦)
二、考点文章
1.Java多线程学习之wait、notify/notifyAll 详解
wait()、notify/notifyAll() 方法是Object的本地final方法,无法被重写。wait()使当前线程阻塞,前提是 必须先获得锁,一般配合......
2.notify() 和 notifyAll() 有什么区别?
先解释两个概念。等待池:假设一个线程A调用了某个对象的wait()方法,线程A就会释放该对象……
3.Java的wait(), notify()和notifyAll()使用小结
wait(),notify()和notifyAll()都是java.lang.Object的方法:wait(): Causes the current thread to wait until another thread
三、考点视频
1.多线程中sleep()和wait()方法的区别
所属类不同,sleep是线程类Thread的静态方法,wait是object类的普通方法……