java - 可重入锁对象锁定

标签 java concurrency java.util.concurrent locks

我正在尝试使某些对象同步,代码如下所示:

    conLock.tryLock();
        this.end();
        Obj1 = Obj2;
        Obj3 = Obj4.build();
    } finally {

        conLock.unlock();
    }

有人可以帮助一下,是否所有对象都将被锁定以进行修改,直到锁定解锁为止。

文档的任何部分也会有所帮助。

最佳答案

all the Objects will be locked for modification

Java 中的锁(无论是通过 synchronized 关键字还是通过 Lock 实现)都不会直接保护任何内容。没有任何东西会被“锁定修改”。

它们只是“咨询”锁,这是一种协议(protocol),允许您通过确保代码与这些锁正确协调执行来编写线程安全代码。但是,您仍然需要确保所有“关键部分”(例如修改某些可变状态的代码路径)都得到适当覆盖(即取出您需要取出的锁)。

它们不会阻止您编写(或执行)忽略锁的代码。

关于java - 可重入锁对象锁定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59136623/

相关文章:

java - 可以从 SortedMap 中获取有序集合吗?

java - 多个线程同时写入一个集合

java - 为什么这个字符串不匹配我的正则表达式?

java - 为什么在 JAVA 中不推荐使用默认包?

java - 无法通过环境变量配置 Spring Boot/Spring Kafka SSL

java - 在并发应用程序之上构建 GUI?

c++ - 使用 CompareAndSwap 的 AtomicIncrement

java - 退出onMessage()后jms调用message.acknowledge()

java - 无法调用 java.util.concurrent.CopyOnWriteArrayList.readObject() 此错误意味着什么?

android - MapView 上的 java.util.ConcurrentModificationException