对函数synchronized是指对该类的所有该函数同步,还是对该类的某个对象同步?

解决方案 »

  1.   

    如果一个方法声明为synchornized的,则是对该类的某个对象同步,等同于把在为个方法上调用synchornized(this).其它对象的线程还是可以运行。    如果一个静态方法被声明为synchornized,则是对该类同步,等同于把在为个方法上调用synchornized(类.class).该类的“域”内只有一个这样的线程运行。
      

  2.   

    所先要理解什么是同步(synchronized),同步的实质是在给对象,或类加锁,一个对象只有一格锁(单锁),如果类中的非静态方法申明为synchronized,则此对象的所有加了synchronized的方法被锁定,其他线程不能访问。而在静态方法上加synchronized,此锁定的是类。