で更新することができるとき、それは安全なハッシュマップの値の参照を使用することです。
そして、ときに私は、このようなパラメータは、それが、私は値が最新ではありません耐えることができるので、それは安全な<i>のgetParameter</i></p> <p>を使用することです別のスレッド
コードの最新の値を取得することができ、次の時間:
public class ParameterManager {
private volatile Map<String, Parameter> scenarioParameterMap = Maps.newHashMap();
public ParameterManager(String appName) throws DarwinClientException {
}
public Parameter getParameter(String scenario) {
return scenarioParameterMap.get(scenario);
}
public void update(String scenario, Map<String, String> parameters) {
if (scenarioParameterMap.containsKey(scenario)) {
Parameter parameter = scenarioParameterMap.get(scenario);
parameter.update(parameters);
} else {
scenarioParameterMap.put(scenario, new Parameter(scenario, parameters));
}
}
}
または更新したばかり
scenarioParameterMap.put(scenario, new Parameter(scenario, parameters));
私はそれがスレッドセーフではないことを知っていますが、私がこのように使用すると、何らかの問題が生じる可能性がありますか?またはgetParameterは古いパラメータを取得するだけですか?次回は最新のパラメータを取得しますか? – bryantism
@bryantismもし私たちがどこか昼食に行くなら、あなたのブレーキは安全ではないことを知っていると教えてください - それは私が知りたい情報ですが、私はあなたに運転させる**ではありません。 –