java多线程中如何实现根据不同字符串或者数字加不同的锁,从而实现在特定参数下才并发访问一段代码?类似synchronized(int a){} 或者 synchronized(String a){}
用这个锁ReentrantLock,把不同的关键字放到map中,Map 这样,遇到 关键字了,取出lock,
调用 lock.lock();用完之后lock.unlock();一定要放到finally中解锁,要不出异常一致锁着
你有理解他那个参数的意义吗,他那个是用于判断当前线程的,找你的说法做一个if不就行了吗
synchronized(lock) 里面的lock只能是对象,不能是int这样的基础类型,可以把int包装成Integer对象:
int a=1222;
Integer n=new Integer(a);
synchronized(n){
......
}