入力に基づいて関数を同期する必要がある状況になりました。例えば。機能があります。func(int a) --- この関数は、同じ入力整数でこの関数を呼び出そうとするスレッドをブロックしたい多くのスレッドから呼び出すことができます。それ以外の場合は、続行せずに続行させます。関数を書きました
HashTable<Integer> check=new Hashtable<Integer>();
func(int a){
Integer lock=check.get(a);
if(lock==null){
check.put(a);
}else{
check.put(a);
}
synchronized(lock){
//do something....
} }
これが正しいかどうか教えてください。また、これ以外の解決策があれば。私は理解しようとしています。答えが見つかったら投稿します。