我有一个场景,我想StringBuilder
在方法中用作局部变量。我知道如果StringBuilder
是一个局部方法变量,它不应该有任何关于线程安全的问题。
但是,如果我附加到StringBuilder
一个实例变量,如:
class MyClass {
private List<String> property;
public void myMethod() {
StringBuilder sb = new StringBuilder();
for(String s : property) {
sb.append(s);
}
}
// some other methods that mutate property
}
我认为要使这个线程安全,仅仅改变StringBuilder
toStringBuffer
是不够的。我应该在属性本身上进行同步吗?