一定時間寝て、その間モニターを離す必要があります。それを達成する方法は?タイマーか何かを待つかもしれませんか?
アップデート
私はサウンド処理を実装していますが、時間的に非常に進んでいる場合は、ストリームの読み取り/書き込みを遅らせる必要があります。私は2つの一般的なアプローチがあると思います:(1)大きな進歩が来るのを待つ(2)時が来るまでそれをロックするための特別なモニターとタイマーを持っている。
一定時間寝て、その間モニターを離す必要があります。それを達成する方法は?タイマーか何かを待つかもしれませんか?
アップデート
私はサウンド処理を実装していますが、時間的に非常に進んでいる場合は、ストリームの読み取り/書き込みを遅らせる必要があります。私は2つの一般的なアプローチがあると思います:(1)大きな進歩が来るのを待つ(2)時が来るまでそれをロックするための特別なモニターとタイマーを持っている。
wait() を使用できますが、それはモニターではなく、1 つのモニターのみを解放します。
あなたの質問から、多くの設計上の問題が示唆されています。理想的にはあなた
この機能が現在利用可能かどうかはわかりません。理由は
1)スレッドがロックを解放すると、経過時間(x秒など)後に確実にロックが返されることを保証できません。JVM 自体は、このように設計されていません。
2) Wait() メソッドは、ミリ秒単位の時間を受け入れるようにオーバーロードされていますが、実装は、待機が呼び出されるとすぐにロックが解放されることを確認するだけです。経過時間の後にロックが返されることを保証するものではありません。
なぜそのような機能が必要なのですか? 必要のないことをしているに違いないと思います。
メソッド sleep() はロックを取得する必要がないので、何を解放したいですか?どのようにモニターをロックしますか?