Java 在多个类之间同步是线程安全的吗

Java 在多个类之间同步是线程安全的吗,java,multithreading,singleton,Java,Multithreading,Singleton,我有一个多线程程序。我有2个单件类,结构如下: public class A { public void synchronized method1() { B.getInstance().method2(); } } public class B { public void method2() { doSomething(); } } 类A和B都是单例的,method2不同步。我想知道method1是否是线程安全的?我的意思是当一个线程通过m

我有一个多线程程序。我有2个单件类,结构如下:

public class A {
   public void synchronized method1() {
      B.getInstance().method2();
   }
}


public class B {
   public void method2() {
      doSomething();
   }
}

A
B
都是单例的,
method2
不同步。我想知道
method1
是否是线程安全的?我的意思是当一个线程通过
method1
转到
method2
时,其他线程是否可以进入
method1

如果一个线程进入
method1
,然后进入
method2
在第一个线程从
method2
method1
返回之前,其他线程都不能进入
method1

但是请记住,多个线程可以同时执行
method2
(尽管最多一个线程可以来自
method1


那么,
method1
线程安全吗?是的,但前提是
method2
也是线程安全的。

类不添加任何内容。线程或线程安全。不同的类采用相同的方法;同一个类有不同的方法-它不会改变规则。那么规则是什么呢?它们是如何影响调用图的?那么你的意思是我应该在类B中标记method2 synchronized?这取决于
method2
的作用,但这样你就有可能让一个线程进入
method1
,然后必须等待其他线程完成执行
method2
。也许可以。我不知道。