在同一个类中能不能同时加两个不同的锁?比如一个是锁成员a的读写,另一个是锁成员b的读写?

解决方案 »

  1.   

    这样?
    Object a=new Object();
    Object b=new Object();synchronized(a)
    {}synchronized(b)
    {}
      

  2.   

    可以的啊
    synchronized(a){.......}
    锁是加在对象a上的 只不过不能对一个对象第二次上锁而已 与这个语句包含在哪个对象里面无关除非是
    public synchronized int myFunction(){...}
    这种写法才是把锁加载包含这个函数的对象上 就相当于
    public int myFunction(){
      synchronized(this){.......}
    }
      

  3.   

    可以,不过现在都不用synchronized了,都用ReentrantLock了.