对synchronized锁的理解

 public class MyObject {
 
     synchronized public void methodA() {
         //do something....
    }
}

在方法前加上synchronized是对象锁,同一对象调用该方法互斥

 public class MyObject {
 
    static synchronized public void methodA() {
         //do something....
     }
}

在方法前加上static synchronized是类锁,由该类创建的所有对象调用该方法都互斥,如果该类只有一个方法,则和在该类前加synchronized等同

 public synchronized class MyObject {
 
    public void methodA() {
         //do something....
     }
}

猜你喜欢

转载自blog.csdn.net/baidu_23263735/article/details/84945922