加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 锁定API同步的优点

发布时间:2020-12-15 05:13:09 所属栏目:Java 来源:网络整理
导读:每个博客或解释我都看到了Locks API优于同步的优点. 我想知道有什么优势的同步锁定,或任何我应该更喜欢同步而不是锁定的情况. 解决方法 你的意思是synchronized语句和方法关键字?隐式锁定的主要优点是需要更少的代码并在离开其范围时自动解锁.对于简单的锁
每个博客或解释我都看到了Locks API优于同步的优点.

我想知道有什么优势的同步锁定,或任何我应该更喜欢同步而不是锁定的情况.

解决方法

你的意思是synchronized语句和方法关键字?隐式锁定的主要优点是需要更少的代码并在离开其范围时自动解锁.对于简单的锁定/等待操作,它是完美的解决方案.

所以下面的代码

public void myMethod() {
    synchronized(this) {
       // concurrent stuff
    }
}

完全等同于

final private Lock lock = new ReentrantLock();

public void myMethod() {
    lock.lock();
    try {
        // concurrent stuff
    }
    finally {
        lock.unlock();
    }
}

synchronized public void myMethod() {
    // concurrent stuff
}

您还可以使用不同的对象进行同步(它们不受任何影响,仅作为控制点):

final static private Object sync = new Object();

public void method1() {
    synchronized(sync) {
        // concurrent code involving static members
    }
}

public void method2() {
     synchronized(this) {
         // concurrent code affecting this instance
     }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读