gpt4 book ai didi

java - 对象内部监视器作为 java.util.concurrent.Lock

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:25:19 25 4
gpt4 key购买 nike

我相信能够将对象的监视器用作 会非常有用。那就是:

synchronized(object) {
...
}

相当于:

lock.lock();
try {
...
} finally {
lock.unlock();
}

据我所知,使用 Lock 接口(interface)是不可能实现的,因为同步只发生在 block 中。我看到的一个解决方案是用一个额外的方法来丰富 java.lang.Object

public Lock asLock/getIntrinsicMonitorObject(); // Name isn't perfect but i'm not asking for that

或类似的东西:

LockSupport.getIntrinsicMonitorObject(Object of);

问题:

  • 是否有一些充分的理由目前无法执行此操作(我认为某些 tryLock 当前不可能与同步不是一个事实)

  • 是否有使用现有 JRE 类的解决方案?

  • 关于此的 JSR 是否有意义?

最佳答案

Unsafe 类* 支持直接操作监视器:

public native void monitorEnter(Object o);

public native void monitorExit(Object o);

public native boolean tryMonitorEnter(Object o);

*这是在 Java 8 中,但我认为它已经在 J​​ava 7 中了

关于java - 对象内部监视器作为 java.util.concurrent.Lock,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22375370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com