假设我有以下代码作为 Web 服务的一部分运行。代码必须是线程安全的,例如没有其他 Web 服务调用可以更改另一个实例中的变量。此代码是否满足此要求?
public class ExampleClass {
public static String abc = "000";
public static ArrayList<String> myList = new ArrayList();
public static synchronized final void clearList(){
mylist.clear();
}
public static synchronized final void addToList(String listItem){
myList.add(listItem);
}
...
more static synchronized methods...
}
我继承了这段代码,需要进行最少量的更改以确保它是同步的。
非常感谢您的回答。
[编辑]为了澄清一点。执行此代码时会调用 Web 服务,它正在使用“abc”和“myList”变量,例如更改它们。与此同时,另一个 Web 服务调用进来,它也将开始使用这些变量。然而,这两个单独的请求应该有自己的“abc”和“myList”变量,例如它们不能在它们之间共享这些变量,否则结果将是错误的。