日期:2014-05-20  浏览次数:20782 次

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了.