当然有区别,如果使用第二段代码,方法HAHA中允许有非同步化的代码。

解决方案 »

  1.   

    public synchronized int HAHA()
    {
    //处理object。。
    }就同步机制相当于:
    public int HAHA()
    {
    synchronized(this) {
    //处理object。。
    }
    }
      

  2.   

    bdsc()说的对,synchronized关键字放在方法声明前,则调用某对象的该方法的线程必须获得该对象的锁,而synchronized如果放在方法体中,则调用该方法的线程必须获得的锁是其后括号中的对象的锁,于是在方法体中的synchronized(this)就相当于方法声明前加synchronized
      

  3.   

    jiangnanyuzi(江南愚子)  bdsc() --
    一个是锁住了调用该方法的对象,另一个是锁住了synchronized(object)中的object.那么我所看到的类,object本身就是调用该方法的对象中的一个对象. 一个是锁住了该对象.另一个是锁住了该对象中的对象.这么做是什么作用呢? 
    我的理解是这样的:
    锁住该对象中的对象,可以保证任何一个该对象的对象都保持同步.而锁住该对象仅仅针对本对象进行了同步,这样分析对吗?============================================
    大家共同交流,共同进步
      

  4.   

    <<
    我的理解是这样的:
    锁住该对象中的对象,可以保证任何一个该对象的对象都保持同步.而锁住该对象仅仅针对本对象进行了同步,这样分析对吗?
    >>表达的什么啊,什么叫该对象的对象。。
      

  5.   

    晕,对象中的一个对象啊。
    public class HAHA{
    public Object object;
    public synchronized int ha1(){
    //处理object。。
    }
    publc int ha2(){
      synchronized(object)
      {
          //处理object。。
       }
    }
    }
    //**********************
    public HAHA haha1;
    public HAHA haha2;
    public HAHA haha3;
    haha.object : haha1 是该对象,而objet是该对象中的对象
    锁住该对象中的对象,可以保证任何一个haha对象中的object对象都保持同步.而锁住该对象仅仅针对本对象调用的函数进行了同步,这样分析对吗?