全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  行业资讯  >  详情

Java面试的十大棘手问题之一

来源:千锋教育
发布人:小千
2021-04-30

推荐

在线提问>>

      为什么在 Object 类中定义 wait 和 notify 方法,为何 wait,notify 和 notifyAll 属于 Object 类?为什么它们不应该在 Thread 类中?这是大家在面试中经常会被面试官问到的一个问题,那下面就是这个问题该怎样回答,大家可以参考参考。

1619685588615

      wait 和 notify 不仅仅是普通方法或同步工具,更重要的是它们是 Java 中两个线程之间的通信机制。对语言设计者而言, 如果不能通过 Java 关键字(例如 synchronized)实现通信此机制,同时又要确保这个机制对每个对象可用, 那么 Object 类则是的正确声明位置。记住同步和等待通知是两个不同的领域,不要把它们看成是相同的或相关的。同步是提供互斥并确保 Java 类的线程安全,而 wait 和 notify 是两个线程之间的通信机制。

      每个对象都可上锁,这是在 Object 类而不是 Thread 类中声明 wait 和 notify 的另一个原因。

      在 Java 中为了进入代码的临界区,线程需要锁定并等待锁定,他们不知道哪些线程持有锁,而只是知道锁被某个线程持有, 并且他们应该等待取得锁, 而不是去了解哪个线程在同步块内,并请求它们释放锁定。

      Java 是基于 Hoare 的监视器的思想。在Java中,所有对象都有一个监视器。

      大家可以参考对比一下自己将来遇到的时候可以怎么回答哦,有想在Java方面有所提升的也可以搜索千锋Java培训,如果对Java感兴趣的也可以到千锋上海Java培训来试听哦。

相关文章

编程代码好学吗?学习这方面内容是否是智商税

培训ui一般要多少钱?哪种学习方式更高效

java培训去哪里学?java培训哪个机构好

平面设计一般要学多久?完善的学习模式非常关键

前端开发培训一般几个月?需要赶快开始学习之旅

开班信息 更多>>

课程名称
全部学科
咨询

HTML5大前端

Java分布式开发

Python数据分析

Linux运维+云计算

全栈软件测试

大数据+数据智能

智能物联网+嵌入式

网络安全

全链路UI/UE设计

Unity游戏开发

新媒体短视频直播电商

影视剪辑包装

游戏原画

    在线咨询 免费试学 教程领取