考虑我在我继承的应用程序中遇到的这种“模式”:
public class BusinessUtil{
public static void doBusiness(IService myService, String arg1, int arg2){
//something something
myService.doStuff(arg1, arg2);
}
}
myService bean是一个springBean(= singleton)。它实际上是一个cxf-client(=生成的webservice-client)
这是在webapplication中,因此从不同的并发线程调用静态 doBusiness()方法。 这个方法是线程安全的吗?
在你问之前:我知道这是一个奇怪的'模式'。我知道 doBusiness()方法是非常多余的,因为我们可以直接调用 myService.doStuff(),而不是将其传递给静态方法,在那里调用它。正如我所说,我继承了一个应用程序,其中“模式”到处都是。我不知道为什么。 该应用程序(有时)有一些奇怪的行为,我正试图找到问题的根源。
答案 0 :(得分:2)
doBusiness()
中没有任何内容可以使其线程不安全。是否线程安全取决于myService.doStuff(arg1, arg2);
答案 1 :(得分:0)
它是否是线程安全的取决于myService.doStuff(arg1,arg2);由于它是cxf-client,因此本文Are CXF client proxies thread safe? 可能有用