我有一个多线程应用程序(Tomcat中的Web应用程序)。其中有一个类几乎每个线程都有自己的实例。在那个类中,有一段代码只有一个线程(用户)可以一次执行。我的研究使我相信,我在这里需要的是一个互斥体(它是一个计数为1的信号量,看起来)。在Java中实现互斥体
因此,经过多一点研究,我认为我应该做的是以下几点。重要的是要注意我的锁对象是静态的。
我做得对吗?
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.
}
}
}
没理由不工作。你也可以使用'ReentrantLock'来达到同样的效果。 – fge 2012-01-08 14:32:27