可能性の重複:
Why are wait() and notify() declared in Java's Object class?Javaは()、のnotifyAll()を通知し、待ちます()メソッド
私はnotify()
、notifyAll()
とwait()
メソッドはObjectクラスに存在している理由を思っていました、他のスレッド関連のメソッドはJavaのThreadクラスにありますか?
可能性の重複:
Why are wait() and notify() declared in Java's Object class?Javaは()、のnotifyAll()を通知し、待ちます()メソッド
私はnotify()
、notifyAll()
とwait()
メソッドはObjectクラスに存在している理由を思っていました、他のスレッド関連のメソッドはJavaのThreadクラスにありますか?
スレッドは、オブジェクトを使用してあるスレッドから別のスレッドにメッセージを送信することができます。スレッドはwait()を呼び出して「メッセージをこのオブジェクトに送信するのを待っています」と呼びます。別のスレッドはnotify()を呼び出して「私はそのオブジェクトにメッセージを送信しています」と言うことができます。したがって、オブジェクトは、スレッドが互いに明示的に参照することなく通信するコンジットです。メソッドがThreadクラスにあった場合、2つのスレッドは互いに通信するための参照を持つ必要があります。代わりに、すべての通信スレッドは、特定の共有リソースを使用することに同意する必要があります。
[http://www.coderanch.com/how-to/java/WaitAndNotifyInObjectClassからこれらの方法は、物体上にあるロックで動作するので、どのスレッドがロックを使用しているかは関係ありません。それらはObjectのプロパティを操作するため、Objectクラスに属します。
これは、同期とロックに関連しています。
すべてのオブジェクトに対して同期をとることができ、メソッドはこのオブジェクトモニターで待機しているスレッドと対話するために使用されます。