0

start(), run() and join() methodsスレッドオブジェクトでスレッドを使用するため、スレッドを使用します。これらのメソッドは の下にありますThread class

Threadwait(), notify(), and notifyAll()オブジェクトでも使用しますが、これらのメソッドは の下にありObject classます。

なぜこれらのメソッドを Object クラスの下に定義する必要があるのか​​ を考えていThreadsます。wait()オブジェクトを呼び出すたびに、共有リソース/条件が満たされるのを待つ待機状態になることがわかっていますが、これはスレッド環境でのみ発生する可能性があります。

では、なぜこれらのメソッドを Object クラスの下に置く必要があるのでしょうか?

ここで何か不足している場合はお知らせください。

4

3 に答える 3

2

メソッド//wait()は、モニターと同様にこのオブジェクトで機能するため、オブジェクトに属しますnotify()notifyAll()

同様の質問:

質問する前に、SOについて同じ質問を探してみてください...

于 2013-03-06T14:14:13.607 に答える
0

Objectクラスは、すべてのJavaクラスのスーパークラスです。Objectのメソッドは、同期のために任意のクラスで使用できます。

于 2013-03-06T14:13:07.980 に答える
0

各 Java オブジェクトには、それに関連付けられたモニターがあります。オブジェクトのモニター上で動作するように参照する関数。これが、それらを定義する必要がある理由ですObject(他のクラスのメンバーにすることもできますが、いずれにせよ型の引数を取る必要があります)。staticObject

于 2013-03-06T14:12:04.337 に答える