我有一个多线程程序。我有2个具有以下结构的单例类:
public class A {
public void synchronized method1() {
B.getInstance().method2();
}
}
public class B {
public void method2() {
doSomething();
}
}
类A
和B
都是单例,method2
未同步。我想知道method1
是否是线程安全的?我的意思是当一个帖子转到method2
到method1
时,其他帖子可以输入method1
吗?
答案 0 :(得分:1)
如果一个帖子进入method1
,那么继续method2
其他任何线程都无法进入method1
,直到第一个帖子从method2
和method1
返回
但请记住,多个线程可以同时执行method2
(尽管最多只有一个线程可以来自method1
)。
那么,method1
线程安全吗?是的,但仅当method2
也是线程安全的时候。