我遇到了必须根据输入同步功能的情况。例如。有功能。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....
} }
请让我知道这是否正确。另外,如果有除此之外的任何其他解决方案。我想弄清楚。如果我找到答案,我会发布它。