synchronized

可以使用synchronized关键字锁住 方法 和 代码块。

synchronized(变量){...}

这里的变量必须是全局唯一变量。

① 在类的实例方法中,一般使用 this 作为这个全局唯一变量,this 为当前的实例化对象。

② 在类的静态方法中,一般使用 类名.class 作为这个全局唯一变量,类名.class 为当前的类对象。

锁代码块

synchronized 锁住 实例方法 的代码块

public class Rik{
    public void method(){
        synchronized(this){...}
    }
}

synchronized 锁住 静态方法 的代码块

public class Rik{
    public void staticMethod(){
        synchronized(Rik.class){...}
    }
}
锁方法

使用synchronized修饰方法的时候,java隐藏了synchronized锚定的 实例对象 或 类对象,实际上java默认锚定了这两个对象。

synchronized 锁住 实例方法

public synchronized void method(){
    ...
}

synchronized 锁住 静态方法

public synchronized void staticMethod(){
    ...
}
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐