gpt4 book ai didi

java - 在 Java 中实现互斥锁

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:15:13 24 4
gpt4 key购买 nike

我有一个多线程应用程序(准确地说是 Tomcat 中的 Web 应用程序)。其中有一个类,几乎每个线程都会有自己的实例。在该类中,一个方法中有一段代码,一次只能有一个线程(用户)执行。我的研究使我相信我在这里需要的是一个互斥体(它似乎是一个计数为 1 的信号量)。

所以,经过更多的研究,我认为我应该做的是以下几点。重要的是要注意我的锁定对象是静态的。

我做得对吗?

public Class MyClass {
private static Object lock = new Object();
public void myMethod() {
// Stuff that multiple threads can execute simultaneously.
synchronized(MyClass.lock) {
// Stuff that only one thread may execute at a time.
}
}
}

最佳答案

在您的代码中,myMethod 可以在任何线程中执行,但一次只能在一个线程中执行。这意味着永远不会有两个线程同时执行此方法。我认为这就是您想要的 - 所以:是的。

关于java - 在 Java 中实现互斥锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8778335/

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