我面临一个关于 Java 方法同步的问题。让我们希望我能简单地解释一下:
我在两个不同的类中有两种不同的方法,在两个不同的包中。就像是:
Package1
|_Class1
\MethodA
Package2
|_Class2
\MethodB
好的,所以现在我需要同步这两个方法,它们不是线程。到目前为止,我有两种不同的方法:
共享信号量。
Package1
在and外部创建一个共享静态信号量Package2
,例如:
package Package3;
public class SemaphoreClass {
public static Semaphore;
}
无论如何,我真的不知道 JVM 是否会认为这是一个共享信号量。
同步 (SharedClass.class)。
使用共享类来同步这两种方法,例如:
public void MethodA() {
synchronized (SharedClass.class) {
//...
}
和
public void MethodB() {
synchronized (SharedClass.class) {
//...
}
无论如何,这些只是方法。我想听听什么是实现我想要实现的目标的最佳方式。为 JVM 提供共享信号量会使事情变得更容易,但是,我知道必须有一个解决方案。提前致谢。