A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 飞舞❤心动 于 2012-6-8 23:00 编辑

wait();
notify();等等
控制多线程语句,为什么不能定义在其他对象下,一定要在Object对象下喃?如果可以定义在其他对象下如何做?

2 个回复

倒序浏览
因为这些方法在操作同步线程时,都必须要标识他们所操作线程锁,只有同一个锁上的等待线程,可以被同一个锁notify唤醒。不可以对不同锁中的线程进行唤醒。也就是说,等待和唤醒的必须是同一锁。而锁可以使任意对象,所以可以被任意对象调用的方法定义Object类中。

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 差不多了哦!!加油

查看全部评分

回复 使用道具 举报
之所以这些操作线程的方法要定义在Object类中,是因为这些方法在操作同步线程时,都必须要标识他们所操作线程只有的锁。只有同一个锁上的被等待线程,可以被同一个锁上notify唤醒。
不可以对不同锁中的线程进行唤醒。也就是说,等待唤醒必须是同一个锁。而锁可以是任意对象,所以可以被任意对象调用的方法定义在Object类中



回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马