wait()和this.wait()之间的区别

时间:2014-07-23 18:01:15

标签: java wait synchronized

我在这里有一个java代码片段让我想知道调用wait()this.wait()之间有什么区别。

假设您有一个类,其中包含一个获取资源并且已同步的方法。通常情况下,如果资源不可用,我会在wait()循环中编写while但如果您拨打this.wait()会发生什么?谁的显示器会被阻挡?类对象或资源的监视器?语句"this"指的是哪个对象?

很抱歉提出这个超级基本问题,但我无法通过谷歌找到任何帮助。

感谢您的帮助!

2 个答案:

答案 0 :(得分:6)

在这种情况下没有任何区别,this.wait()wait()将调用相同的方法。

查看关于Java中this关键字的oracle docs

来自文档:

  

在实例方法或构造函数中, 是对   当前对象 - 其方法或构造函数所在的对象   调用。您可以从内部引用当前对象的任何成员   使用 this

的实例方法或构造函数

答案 1 :(得分:0)

this关键字是指类的当前实例,并且由于从对象本身调用wait()已经引用了当前实例的函数,因此wait()和{之间没有区别在你的情况下{1}}。