社区
刘英杰的课程社区_NO_4
Java程序员面试宝典视频课程之多线程(十一)
帖子详情
10-12 wait、notify、notifyAll是在Object类中定义的方法吗?
l363130002
2023-01-12 14:46:59
课时名称
课时知识点
10-12 wait、notify、notifyAll是在Object类中定义的方法吗?
...全文
28
回复
打赏
收藏
10-12 wait、notify、notifyAll是在Object类中定义的方法吗?
课时名称课时知识点10-12 wait、notify、notifyAll是在Object类中定义的方法吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
为什么
wait
,
notify
,
notify
All 在
Object
类
定义
而不是 Thread 类?
作者:Yujiaao 来源:segmentfault.com/a/1190000019962661 一个较难回答的 Java 问题, Java 编程语言又不是你设计的,你如何回答这个问题呢?需要对 Java 编程的常识进行深入了解才行。 这个问题的好在它能反映面试者是否对
wait
-
notify
机制有没有了解, 以及他相关知识的理解是否明确。就像为什么 Java 中不支持多继承或者为什么 String 在 Java 中是 final 的问题一样,这个问题也可能有多个答案。 为什么在
Object
.
Java-
Object
-
wait
-
notify
-
notify
All
使当前线程等待,直到另一个线程调用该对象的
notify
()
方法
或
notify
All()
方法
。换句话说,该
方法
的行为就像简单地调用
wait
(0)。当前线程必须拥有该对象的监视器。线程释放该监视器的所有权,并等待,直到另一个线程通过调用
notify
方法
或
notify
All
方法
来通知等待该对象监视器的线程唤醒。。和都是可能发生,因此应当在循环中使用该
方法
:while (<条件不成立>)obj.
wait
();... //根据条件执行适当的操作此
方法
只能由拥有该对象监视器的线程调用。
为什么
wait
/
notify
/
notify
All被
定义
在
Object
类中
,而sleep
定义
在Thread
类中
,
wait
/
notify
和sleep
方法
的异同
为什么
wait
/
notify
/
notify
All被
定义
在
Object
类中
,而sleep
定义
在Thread
类中
因为java中每个对象都有一把称之为monitor监控器的锁 由于每个对象都可以上锁,这就要求在对象头中有一个用来保存锁信息的位置 这个锁是对象级别多大,而非线程级别的,
wait
/
notify
/
notify
All也都是锁级别的操作, 他们的锁属于对象 所以把他们
定义
在
Object
类中
最合适,因为Objecct类是所有对象的父类 因为如果把
wait
/
notify
/
notify
All
方法
定义
在Thre
为什么
Wait
和
notify
方法
在
Object
中?
** 为什么
Wait
和
notify
方法
在
Object
类中
** 为何
wait
,
notify
和
notify
All 属于
Object
类? 为什么它们不应该在 Thread
类中
? 以下观点我认为是有道理的:
wait
和
notify
不仅仅是普通
方法
或同步工具,更重要的是它们是 Java 中两个线程之间的通信机制。 对语言设计者而言, 如果不能通过 Java 关键字(例如 synchronized)实现通信此机制,同时又要确保这个机制对每个对象可用, 那么
Object
类则是的合理的声明位置。 记
为什么
wait
,
notify
和
notify
All这些
方法
不在thread类里面?
因此,它们被
定义
在 `
Object
`
类中
,因为所有的 Java 对象都可以作为锁,并且每个对象都有与之相关联的等待队列(
wait
set)和通知队列(
notify
set)。`
wait
()`、`
notify
()` 和 `
notify
All()`
方法
是对象级别的
方法
,它们不是 `Thread` 类的
方法
,而是
定义
在 `
Object
`
类中
的。由于每个对象都有这些队列和相关的同步机制,因此这些
方法
是
定义
在 `
Object
`
类中
的,而不是 `Thread`
类中
。
刘英杰的课程社区_NO_4
1
社区成员
277
社区内容
发帖
与我相关
我的任务
刘英杰的课程社区_NO_4
复制链接
扫一扫
分享
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章