synchronized几种形式及其用途
synchronized几种形式及其用途
呆萌的我 发表于2年前
synchronized几种形式及其用途
  • 发表于 2年前
  • 阅读 4
  • 收藏 0
  • 点赞 0
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

java并发编程过程中,常用到同步关键字synchronized,现在分析下synchronized在编程过程中的几种用途。

在方法体上

public synchronized void method1() {    
}

一次同时只能有一个线程能调用方法,其他线程只能等待。

在方法内部1

Integer mutex = 10;
public void method1() {
    synchronized (mutex) {
        System.out.println(mutex);
    }
}
public void method2() {
    synchronized (mutex) {
        mutex +=1;
    }
}

在调用method1时,会阻塞mehtod2

在方法内部2

public void method() { synchronized (this) { System.out.println("method2"); } }

通过当前对象锁

在方法内部3

public void method() { synchronized (XX.class) { System.out.println("method2"); } }

精度加锁

Object obj1 = new Object();
Object obj2 = new Object();

public void method1() {
    synchronized (obj1) {   
    }
}
public void method2() {
    synchronized (obj2) {   
    }
}

可以根据自己需要,加锁更精确,提高效率

版权声明:本文为博主原创文章,未经博主允许不得转载。

标签: java 线程 编程 并发
共有 人打赏支持
粉丝 3
博文 15
码字总数 15443
×
呆萌的我
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: