在方法前面加synchronized后,在同一时间只能有一个对象在调用此方法,其他对象要调用的话,需要等待上个对象使用完毕后,才可调用。

解决方案 »

  1.   

    1.当然是有同步限制方法的锁了。
    2.是的:在类方法前面加synchronized就可以实现类方法的同步,但这样的开销比较大(除非你的方法本身只有几行代码,涉及到的资源很少)
      

  2.   

    仅仅在方法前面加上同步关键字synchronized来实现同步是不安全的,它只能保证同一个对象调用该方法时被同步了,如果是不同的对象还是会出现同步问题的!应该定义一个类变量private static Object lock = new Object()然后同步该对象,
    public void yourMethod(){
    synchronized(lock){
       your code...
    }
    }