0

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

我们也wait(), notify(), and notifyAll()将其与 Thread 对象一起使用,但这些方法位于Object class.

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

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

如果我在这里遗漏了什么,请告诉我。

4

3 回答 3

2

方法wait()//属于对象,因为它们与此对象一起工作就像与监视器一样notify()notifyAll()

类似的问题:

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

于 2013-03-06T14:14:13.607 回答
0

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

于 2013-03-06T14:12:04.337 回答
0

Object类是所有java类的超类。Object中的方法我们可以在任何类中使用来进行同步。

于 2013-03-06T14:13:07.980 回答