その実装でそれらのいずれかを使用する必要があるアルゴリズムはありますか?
ほぼ間違いない。(確かに、理論的な観点から、あなたは。/他のjava.util.concurrentのを使用して通知シミュレート待機することができるはずです。あなたがロックを解除するために注意する必要があるだろうけれども...クラス。そして、明示的なロック操作に置き換えることができ、同期finally
条項。)
ただし、Javaで最高のパフォーマンスを実現する実装には、待機と通知の有無にかかわらず、同期を直接使用するアルゴリズムが含まれている可能性があります。
同期を廃止し、待機して通知する時間ですか?
前の質問に対する答えに関係なく、答えは間違いなくノーです。
待機/通知は正しく使用できます(多くの場合使用されます)。Javaでは、非推奨は壊れたクラスとメソッドのために予約されています。すなわち、緊急の問題として継続使用を修正する必要がある場合。Sun(および現在はOracle)が、基本的なものやwait / notifyとして広く使用されているものを非推奨にすると、大量のレガシーコードに対して深刻な互換性の問題が発生します。それは誰の利益にもなりません。
コードの同期/待機/通知を削除したい場合は、それで問題ありません。しかし、非推奨では、本質的に正しいマルチスレッドコードを大量に書き直す必要があり、それは悪い考えです。企業のITマネージャーとソフトウェア製品マネージャーは、提案することであなたを憎むでしょう...
Javaのドキュメントによると、「非推奨」の意味を読む価値があります:http : //docs.oracle.com/javase/1.5.0/docs/guide/javadoc/deprecation/deprecation.html
また、Java言語の中核となるものの廃止について話していることに注意してください。廃止することにsynchronized
は大きな影響があります。