Thread类和Object类中的方法

时间:2013-03-06 14:10:00

标签: java multithreading

当我们在线程对象上使用线程时,我们有start(), run() and join() methods个线程,这些方法在Thread class下。

我们也使用Thread对象wait(), notify(), and notifyAll(),但这些方法都在Object class下。

我在想为什么需要在Object类下定义这些方法,因为我们只用Threads调用它们。我们知道,只要我们调用wait()对象进入等待状态,等待共享资源/条件满足,但这只能在线程环境中发生。

所以问题是为什么需要将这些方法放在Object类下?

如果我在这里遗漏任何东西,请告诉我。

3 个答案:

答案 0 :(得分:2)

方法wait() / notify() / notifyAll()属于对象,因为它们与监视器一样使用此对象。

类似的问题:

在询问之前尝试在SO上搜索相同的问题...

答案 1 :(得分:0)

每个Java对象都有一个monitor与之关联。您引用的功能在对象的监视器上运行。这就是他们需要在Object下定义的原因(他们可以已成为其他类的static成员,但他们需要采用类型参数无论如何Object

答案 2 :(得分:0)

Object类是所有java类的超类.Object中的方法可以在任何类中用于同步。