java的锁机制
在同一个类中能不能同时加两个不同的锁?比如一个是锁成员a的读写,另一个是锁成员b的读写?
------解决方案--------------------这样?
Object a=new Object();
Object b=new Object();
synchronized(a)
{
}
synchronized(b)
{
}
------解决方案--------------------可以的啊
synchronized(a){.......}
锁是加在对象a上的 只不过不能对一个对象第二次上锁而已 与这个语句包含在哪个对象里面无关
除非是
public synchronized int myFunction(){...}
这种写法才是把锁加载包含这个函数的对象上 就相当于
public int myFunction(){
synchronized(this){.......}
}
------解决方案--------------------可以,不过现在都不用synchronized了,都用ReentrantLock了.