IIUC,一个仅由同步
方法访问的集合
应该是线程安全的 - 是这样吗?
例如,
class Foo {
private List<String> mList = new LinkedList<>();
public synchronized List<String> getList() {
return mList;
}
}
假设这个 getter 用于独占来访问列表 - 所有操作都是通过 getList()
- 感觉它对我来说应该是线程安全的 - 但我'我很高兴被告知我错了。
泰亚
最佳答案
这很可能不够,因为它只是返回 List
的引用;多个线程仍然能够同时修改它,从而导致竞争条件。如果您正在寻找完全同步的 List
,那么我建议使用用 Collections#synchronizedList
包装的 ArrayList
。
关于java - 同步集合 getter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43456272/