10
なぜwait()は常に同期ブロックでなければならないのですか?
を呼び出すにはObject.wait()、この呼び出しを同期ブロックに配置する必要がありますIllegalMonitorStateException。そうでない場合はがスローされます。しかし、この制限を設ける理由は何ですか?私はそれwait()がモニターを解放することを知っていますが、なぜ特定のブロックを同期させてモニターを明示的に取得し、次に呼び出しによってモニターを解放する必要があるのwait()ですか? wait()同期されたブロックの外部で呼び出すことが可能で、そのセマンティクスを保持する-呼び出し元のスレッドを一時停止する可能性がある場合、どのような損害が考えられますか?