gpt4 book ai didi

java - 在java中使用监视器的困惑

转载 作者:行者123 更新时间:2023-12-01 14:50:18 25 4
gpt4 key购买 nike

我试图了解您如何在 Java 中使用监视器。据我所知,Java 不提供可以像使用二进制或计数信号量那样创建的监视器。既然如此,当我看到人们做这样的事情时,到底意味着什么:

while(!B){ 
x.wait();
}

在这种情况下 x 到底是什么?他们是否构建了一些模仿具有 wait() 方法的监视器操作的类?

为什么不这样做

while(!B){
wait();
}

?这样你就可以拥有多个显示器了吗?如果是这样,为什么?看来此时您不妨只使用信号量......

总的来说,我认为我的问题是真正了解显示器是什么以及如何正确使用它。我很感激您能给我的任何见解。

最佳答案

wait()java.lang.Object 的方法。每个 Java 对象都有一个固有锁,称为监视器。

x.wait() 等待变量 x 的对象引用。 wait() 相当于 this.wait(),因此等待 this 引用的对象。

也就是说,wait() 是一个非常低级且难以使用的抽象。您最好使用更高级别的抽象,例如 Java 具有的...Semaphore。在 javadoc 中查看它。

另请查看Java's concurrency tutorial ,其中涵盖了这些主题。

关于java - 在java中使用监视器的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14946753/

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