我在这里有一个java代码片段让我想知道调用wait()
和this.wait()
之间有什么区别。
假设您有一个类,其中包含一个获取资源并且已同步的方法。通常情况下,如果资源不可用,我会在wait()
循环中编写while
但如果您拨打this.wait()
会发生什么?谁的显示器会被阻挡?类对象或资源的监视器?语句"this"
指的是哪个对象?
很抱歉提出这个超级基本问题,但我无法通过谷歌找到任何帮助。
感谢您的帮助!
答案 0 :(得分:6)
在这种情况下没有任何区别,this.wait()
和wait()
将调用相同的方法。
查看关于Java中this
关键字的oracle docs。
来自文档:
在实例方法或构造函数中, 此 是对 当前对象 - 其方法或构造函数所在的对象 调用。您可以从内部引用当前对象的任何成员 使用 this 。
的实例方法或构造函数
答案 1 :(得分:0)
this
关键字是指类的当前实例,并且由于从对象本身调用wait()
已经引用了当前实例的函数,因此wait()
和{之间没有区别在你的情况下{1}}。