假设我有以下内容:
public class Foo {
private ReadingList mReadingList = new ReadingList();
public ReadingList getReadingList() {
synchronized (mReadingList) {
return mReadingList;
}
}
}
如果我尝试在两个线程中修改 ReadingList 对象,上面的同步对我没有帮助,对吧?:
// Thread 1
foo1.getReadingList().setName("aaa");
// Thread 2
foo2.getReadingList().setName("bbb");
我是否必须像这样包装我想要同步的每个方法:
public class Foo {
private ReadingList mReadingList = new ReadingList();
public synchronized void setReadingListName(String name) {
mReadingList.setName(name);
}
public synchronized void setReadingListAuthor(String author) {
mReadingList.setAuthor(author);
}
...
对于我想要公开和同步的每个 ReadingList 方法,等等?我最终只会为 ReadingList 的每个方法编写包装器方法。
谢谢