你好,有人可以帮帮我吗?
当多个线程访问mKeySet
时,有人在方法toValue
中随机读取零大小,而不是空,为什么?
for (String key : mKeySet) {
String v = map.get(key);
if (v == null) {
v = EMPTY;
}
if (i > 0)
buf.append(",");
buf.append("'").append(v).append("'");
i++;
}
我刚刚同步了这个方法?
答案 0 :(得分:0)
您已经在类store
上同步了方法Datastore
,而不是地图---换句话说,您正在锁定Datastore
对象。
如果地图上有其他任何用户,则需要同步访问map
---锁定地图本身 - 而不是方法:synchronized (map) { // Do things to the map }