我正在查看一些具有以下习语的遗留代码:
Map<String, Boolean> myMap = someGlobalInstance.getMap();
synchronized (myMap) {
item = myMap.get(myKey);
}
我从 Intelli-J 的代码检查中得到的警告是:
Synchronization on local variable 'myMap'
这是适当的同步吗?为什么?
Map<String, Boolean> myMap = someGlobalInstance.getMap();
synchronized (someGlobalInstance.getMap()) {
item = myMap.get(myKey);
}