IIUC,一个Collection
只有一个方法访问,应该是线程安全的 - 是吗?同步收集获取器
例如,
class Foo {
private List<String> mList = new LinkedList<>();
public synchronized List<String> getList() {
return mList;
}
}
假设这吸气剂专门访问列表 - 所有操作都是通过getList()
- 感觉就像它应该是线程安全的我 - 但我很高兴被告知我错了。
TYIA
不可以。您正在返回对您的实际列表的引用。任何在某个时候获得清单的人都可以以非线程安全的方式自由修改其内容。 – Marvin
如果您要返回列表,请将其作为一个简单的方法。同步不会在这里做任何魔术。并且您返回可以由任何人修改的列表的引用。 – vijayraj34