gpt4 book ai didi

java - Lock 是否作为单线程上的 boolean 信号量工作?

转载 作者:行者123 更新时间:2023-12-02 08:48:25 25 4
gpt4 key购买 nike

我需要 Java 中的互斥锁,它可以在单线程内和跨线程内提供独占访问。做一些非常简单的事情,如下所示:

    Lock l = new ReentrantLock();
for (int i = 0; i < 5; i++) {
Log.d(TAG, "Lock = " l.tryLock());
}

令人惊讶的是,每次通话都让我感到真实:

Lock = true
Lock = true
Lock = true
Lock = true
Lock = true

这是为什么,还是我根本上就错了?

最佳答案

顾名思义,它是可重入的,这意味着拥有它的线程可以重新获取它。

这是一件好事,否则你很容易造成单线程死锁。

所以不,它充当 boolean 信号量。如果您想要 boolean 信号量,请使用new Semaphore(1);。不过,如果您确实打算造成自死锁,请确保有另一个线程可以解决它。

关于java - Lock 是否作为单线程上的 boolean 信号量工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60937673/

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